Home » Archimedes archive » Archimedes World » AW-1992-09.adf » AWSept92 » !AWSept92/Goodies/Draughts/!Draughts/!RunImage

!AWSept92/Goodies/Draughts/!Draughts/!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-1992-09.adf » AWSept92
Filename: !AWSept92/Goodies/Draughts/!Draughts/!RunImage
Read OK:
File size: B12E bytes
Load address: 0000
Exec address: 0000
File contents
   10REM><Draughts$Dir>.!RunImage
   20ONERROR PROCerror(REPORT$+" (internal error code "+(STR$ERL)+")",TRUE)
   30PROCinit
   40ONERROR PROCerror(REPORT$+" (internal error code "+STR$ERL+")",FALSE)
   50mask%=0
   60REPEAT
   70PROCpoll
   80IF playing% THEN PROCcheckifwon
   90IF playing% AND Plyr1=1 AND Go=1 THEN
  100PROCcompgo
  110PROCsetgoicon(TRUE)
  120ENDIF
  130PROCpoll
  140IF playing% THEN PROCcheckifwon
  150IF playing% AND Plyr2=1 AND Go=2 THEN
  160PROCcompgo
  170PROCsetgoicon(TRUE)
  180ENDIF
  190UNTIL finished%
  200 
  210DEFPROCend
  220SYS"Wimp_CloseDown",task_handle%,&4B534154
  230END
  240 
  250DEFPROCpoll
  260SYS"Wimp_Poll",mask%,block% TO reason%
  270CASE reason% OF
  280WHEN 2:PROCopen
  290WHEN 3:PROCclose
  300WHEN 6:PROCclick(block%!8,block%!12,block%!16)
  310WHEN 7:PROCdragdone
  320WHEN 8:PROCkeypressed(!block%,block%!4,block%!24)
  330WHEN 9:PROCdecodemenu
  340WHEN 17,18:PROCmessage
  350ENDCASE
  360ENDIF
  370ENDPROC
  380 
  390DEFPROCerror(err$,fatal%)
  400SYS"Wimp_DragBox",,0
  410!block%=ERL
  420$(block%+4)=err$
  430SYS"Wimp_ReportError",block%,1,"Draughts"
  440IF fatal% THEN SYS"Wimp_CloseDown",task_handle%,&4B534154
  450ENDPROC
  460 
  470DEFPROCinit
  480SYS"Wimp_Initialise",200,&4B534154,"Draughts" TO ,task_handle%
  490DIM block% 5500,block2% 1024
  500DIM main2% 4500,main3% 5500
  510DIM ind1% 49,ind2% 49,ind3% 350,ind4% 0,ind5% 30,ind6% 260,ind7% 0,ind8% 0
  520DIM pane% 920
  530DIM pixel 16:?pixel=0
  540FORp=1TO16:pixel?p=15:NEXT
  550SYS"Wimp_SlotSize",-1,-1 TO slotsize
  560PROCsetupvarsndims
  570grblacked=-1
  580dimension=0:PROCvars3d
  590sprites%=(HIMEM+1)+(8192)
  600WHILE (sprites% DIV 4)<> sprites%/4
  610sprites%+=1
  620ENDWHILE
  630PROCloadsprites
  640SYS"Wimp_OpenTemplate",,"<Draughts$Dir>.Templates"
  650SYS"Wimp_LoadTemplate",,main2%,ind1%,ind1%+49,-1,"main2D",0
  660main2%!64=sprites%
  670SYS"Wimp_LoadTemplate",,main3%,ind2%,ind2%+49,-1,"main3D",0
  680main3%!64=sprites%
  690SYS"Wimp_CreateWindow",,main3% TO main_handle%
  700SYS"Wimp_LoadTemplate",,block%,ind3%,ind3%+350,-1,"info",0
  710block%!64=sprites%
  720SYS"Wimp_CreateWindow",,block% TO info_handle%
  730SYS"Wimp_LoadTemplate",,block%,ind4%,ind4%+0,-1,"stepthru",0
  740block%!64=sprites%
  750SYS"Wimp_CreateWindow",,block% TO stepthru_handle%
  760SYS"Wimp_LoadTemplate",,block%,ind5%,ind5%+30,-1,"players",0
  770block%!64=sprites%
  780SYS"Wimp_CreateWindow",,block% TO players_handle%
  790SYS"Wimp_LoadTemplate",,block%,ind6%,ind6%+260,-1,"saveas",0
  800SYS"Wimp_CreateWindow",,block% TO save_handle%
  810SYS"Wimp_LoadTemplate",,block%,ind8%,ind8%+0,-1,"graphics",0
  820SYS"Wimp_CreateWindow",,block% TO graphics_handle%
  830SYS"Wimp_LoadTemplate",,pane%,ind7%,ind7%+0,-1,"pane",0
  840SYS"Wimp_CloseTemplate"
  850filename$="DrghtsGame"
  860PROCsetupboarddata
  870PROCfindgraphics
  880PROCsetupmenus
  890PROCloadfile_startedwith
  900!block%=-1:block%!4=0:block%!8=0
  910block%!12=84:block%!16=68:block%!20=&3002
  920$(block%+24)="!Draughts"
  930SYS"Wimp_CreateIcon",,block% TO iconbar%
  940ENDPROC
  950 
  960DEFPROCsetupboarddata
  970numsq()=1,3,5,7,8,10,12,14,17,19,21,23,24,26,28,30,33,35,37,39,40,42,44,46,49,51,53,55,56,58,60,62
  980!block%=main_handle%
  990FOR ic=0 TO 31
 1000icn=numsq(ic)
 1010block%!4=icn
 1020SYS"Wimp_GetIconState",,block%
 1030xcoord(icn)=(block%!8 + block%!16)/2
 1040yrow=(icn DIV 8)+1
 1050ycoord(yrow)=block%!12
 1060sqsizes(0,icn)=block%!8
 1070sqsizes(1,icn)=block%!12-4
 1080sqsizes(2,icn)=block%!16
 1090sqsizes(3,icn)=block%!20
 1100NEXT
 1110ENDPROC
 1120 
 1130DEFPROCloadsprites
 1140S%=OPENIN"<Draughts$Dir>.Sprites"
 1150spl=EXT#S%+16
 1160CLOSE#S%
 1170PROCslotsize(slotsize+spl+16384)
 1180IF nslot<(slotsize+spl) THEN
 1190PROCerror("Insufficient memory to load application Sprites file - need approximately 20k.",FALSE):PROCend
 1200ENDIF
 1210slotsize+=spl+16384
 1220!block%=spl:block%!4=0
 1230sprites%!8=16:sprites%!12=16
 1240REM **** SYS"OS_SpriteOp",265,sprites% ****
 1250SYS"OS_SpriteOp",266,sprites%,"<Draughts$Dir>.Sprites"
 1260ENDPROC
 1270 
 1280DEFPROCfindgraphics
 1290SYS"OS_GBPB",9,"<Draughts$Dir>.Graphics",block%,256,0,8192,0 TO ,,,ngrfiles
 1300offset=0
 1310FOR f=1TO ngrfiles
 1320f$=""
 1330REPEAT
 1340f$+=CHR$(block%?offset)
 1350offset+=1
 1360UNTIL block%?offset =0
 1370offset+=1
 1380graphic$(f)=f$
 1390NEXT
 1400pane%!44=-(56*ngrfiles)
 1410IF ngrfiles<3 THEN pane%!44=-156
 1420SYS"Wimp_CreateWindow",,pane% TO pane_handle%
 1430FOR f=1TO ngrfiles
 1440PROCalterIcon(pane_handle%,f-1,"#"+graphic$(f),0,1)
 1450NEXT
 1460ENDPROC
 1470 
 1480DEFPROCloadfile_startedwith
 1490SYS"OS_GetEnv" TO env$
 1500env$=MID$(env$,INSTR(env$,"""",INSTR(env$,"""")+1)+1)
 1510WHILE LEFT$(env$,1)=" "
 1520env$=MID$(env$,2)
 1530ENDWHILE
 1540firstload=TRUE
 1550PROCload(env$)
 1560firstload=FALSE
 1570ENDPROC
 1580 
 1590DEFPROCstore
 1600FOR s=0TO31
 1610store?((pos*44)+s)=square(numsq(s))
 1620NEXT
 1630FOR h=0 TO 10
 1640store?((pos*44)+h+32)=huff(h)
 1650NEXT
 1660store?((pos*44)+43)=phuff
 1670pos+=1
 1680ENDPROC
 1690 
 1700DEFPROCrestoreboard(rpos)
 1710FOR s=0TO31
 1720IF square(numsq(s))<>store?((rpos*44)+s) OR indim=TRUE THEN PROCsetpiece(numsq(s),store?((rpos*44)+s))
 1730square(numsq(s))=store?((rpos*44)+s)
 1740NEXT
 1750PROCcountmen
 1760ENDPROC
 1770 
 1780DEFPROCrestore(rpos)
 1790SYS"Hourglass_On"
 1800pos=rpos+1
 1810PROCrestoreboard(rpos)
 1820FOR h=0 TO 10
 1830huff(h)=store?((rpos*44)+32+h)
 1840NEXT
 1850phuff=store?((rpos*44)+43)
 1860IF (pos AND 1) THEN Go=1:Ogo=2 ELSE Go=2:Ogo=1
 1870PROCsetgotext
 1880PROCcheckifhuff
 1890PROCungreymenu(TRUE,TRUE,TRUE)
 1900SYS"Hourglass_Off"
 1910ENDPROC
 1920 
 1930DEFPROCsetgotext
 1940PROCsetgoicon(TRUE)
 1950IF Go=1 THEN Go$=Plyr1$ ELSE Go$=Plyr2$
 1960IF RIGHT$(Go$,1)="s" THEN Go$+="' turn" ELSE Go$+="'s turn"
 1970PROCalterIcon(main_handle%,Gotexticon,"!"+Go$,0,1)
 1980ENDPROC
 1990 
 2000DEFPROCcountmen
 2010m1=0:m2=0:k3=0:k4=0
 2020FOR s=0 TO 63
 2030CASE square(s) OF
 2040WHEN 1:m1+=1
 2050WHEN 2:m2+=1
 2060WHEN 3:k3+=1
 2070WHEN 4:k4+=1
 2080ENDCASE
 2090NEXT
 2100PROCalterIcon(main_handle%,m1_icon,"#"+STR$m1,0,1)
 2110PROCalterIcon(main_handle%,m2_icon,"#"+STR$m2,0,1)
 2120PROCalterIcon(main_handle%,k3_icon,"#"+STR$k3,0,1)
 2130PROCalterIcon(main_handle%,k4_icon,"#"+STR$k4,0,1)
 2140ENDPROC
 2150 
 2160DEFPROCsetpiece(piecen,piece)
 2170IF dimension=2 THEN
 2180PROCalterIcon(main_handle%,piecen,"#square"+STR$piece+"9",0,1)
 2190ELSE
 2200PROCalterIcon(main_handle%,piecen+65,"#",0,1)
 2210row=FNrow(piecen)
 2220!block%=main_handle%:block%!4=piecen+65
 2230SYS"Wimp_GetIconState",,block%
 2240SYS"Wimp_DeleteIcon",,block%
 2250piecegn=(piece*10)+row
 2260grx=grsizes(0,piecegn)
 2270gry=grsizes(1,piecegn)
 2280block%!4=main_handle%
 2290block%!8=xcoord(piecen)-(grx/2)
 2300block%!12=ycoord(row)+4
 2310block%!16=block%!8+grx
 2320block%!20=block%!12+gry
 2330block%!24=&301A
 2340$(block%+28)="square"+STR$piecegn
 2350SYS"Wimp_CreateIcon",,block%+4
 2360SYS"Wimp_ForceRedraw",main_handle%,block%!8,block%!12,block%!16,block%!20
 2370ENDIF
 2380ENDPROC
 2390 
 2400DEFPROCsetpieceflags(piecen,flags)
 2410PROCalterIcon(main_handle%,piecen,"",flags,1)
 2420ENDPROC
 2430 
 2440DEFPROCload(loadname$)
 2450inload=TRUE
 2460SYS"Hourglass_On"
 2470A%=OPENINloadname$
 2480dimension=BGET#A%
 2490GoI=BGET#A%
 2500Plyr1=BGET#A%
 2510Plyr2=BGET#A%
 2520level%=BGET#A%
 2530grld$=""
 2540FOR g=0 TO 9
 2550grld$+=CHR$(BGET#A%)
 2560NEXT
 2570g=INSTR(grld$,".")
 2580IF g>0 THEN grld$=LEFT$(grld$,g-1)
 2590pos=BGET#A%
 2600FOR p=0 TO (pos*44)-1
 2610store?p=BGET#A%
 2620NEXT
 2630CLOSE#A%
 2640PROCsetgraphics(grld$)
 2650PROCalterIcon(players_handle%,18,"#"+STR$level%,0,1)
 2660IF instep=TRUE THEN spos=pos-1:PROCclick(4,stepthru_handle%,4):PROCclick(4,stepthru_handle%,2)
 2670IF firstload=FALSE THEN bdimen=dimension:dimension=0:PROCsetdimension(bdimen)
 2680IF GoI>2 THEN
 2690Go=GoI-2
 2700IF Go=1 THEN Ogo=2 ELSE Ogo=1
 2710PROCconcede
 2720ELSE
 2730Go=GoI
 2740IF Go=1 THEN Ogo=2 ELSE Ogo=1
 2750ENDIF
 2760IF firstload=FALSE THEN filename$=loadname$:PROCalterIcon(save_handle%,10,"!"+filename$,0,1)
 2770SYS"Hourglass_Off"
 2780inload=FALSE
 2790ENDPROC
 2800 
 2810DEFPROCsetdimension(newdimens)
 2820IF dimension=newdimens THEN ENDPROC
 2830!block%=main_handle%:SYS"Wimp_GetWindowState",,block%
 2840infront=block%!28
 2850dimension=newdimens
 2860!block%=main_handle%
 2870SYS"Wimp_DeleteWindow",,block%
 2880IF dimension=2 THEN
 2890SYS"Wimp_CreateWindow",,main2% TO main_handle%
 2900PROCvars2d
 2910dimenm!28=1:dimenm!52=&80
 2920ELSE
 2930SYS"Wimp_CreateWindow",,main3% TO main_handle%
 2940PROCvars3d
 2950dimenm!28=0:dimenm!52=&81
 2960ENDIF
 2970indim=TRUE
 2980PROCrestore(pos-1)
 2990indim=FALSE
 3000IF Plyr1=0 THEN MPlyr1$="User" ELSE MPlyr1$="Archie"
 3010IF Plyr2=0 THEN MPlyr2$="User" ELSE MPlyr2$="Archie"
 3020PROCalterIcon(main_handle%,mplayer1,"#"+MPlyr1$,0,1)
 3030PROCalterIcon(players_handle%,3,"#"+MPlyr1$,0,1)
 3040PROCalterIcon(main_handle%,mplayer2,"#"+MPlyr2$,0,1)
 3050PROCalterIcon(players_handle%,7,"#"+MPlyr2$,0,1)
 3060IF First<>-1 THEN PROCsetpieceflags(First,red)
 3070IF nint>0 THEN
 3080FOR i=1TOnint
 3090PROCsetpieceflags(int(i),green)
 3100NEXT
 3110ENDIF
 3120PROCsetplyrnames
 3130PROCcountmen:PROCcheckifwon
 3140IF conceded PROCconcede
 3150IF mainopen THEN
 3160!block%=main_handle%
 3170SYS"Wimp_GetWindowState",,block%
 3180block%!28=infront
 3190SYS"Wimp_OpenWindow",,block%
 3200ENDIF
 3210ENDPROC
 3220 
 3230DEFPROCopenwindow(handle%)
 3240IF handle%=main_handle% THEN mainopen=TRUE
 3250!block%=handle%
 3260SYS"Wimp_GetWindowState",,block%
 3270SYS"Wimp_OpenWindow",,block%
 3280ENDPROC
 3290 
 3300DEFPROCsetgoicon(thinking)
 3310IF playing%=FALSE THEN PROCalterIcon(main_handle%,goicon,"#",0,1):ENDPROC
 3320IF thinking THEN
 3330IF Go=1 AND Plyr1=0 THEN ic$="cm3"
 3340IF Go=1 AND Plyr1=1 THEN ic$="cm1"
 3350IF Go=2 AND Plyr2=0 THEN ic$="cm3"
 3360IF Go=2 AND Plyr2=1 THEN ic$="cm1"
 3370ENDIF
 3380IF thinking=FALSE THEN
 3390IF Go=1 AND Plyr1=0 THEN ic$="cm4"
 3400IF Go=1 AND Plyr1=1 THEN ic$="cm2"
 3410IF Go=2 AND Plyr2=0 THEN ic$="cm4"
 3420IF Go=2 AND Plyr2=1 THEN ic$="cm2"
 3430ENDIF
 3440PROCalterIcon(main_handle%,goicon,"#"+ic$,0,1)
 3450ENDPROC
 3460 
 3470DEFPROCsetgraphics(grld$)
 3480lgrld=0
 3490FOR g=1 TO ngrfiles
 3500IF graphic$(g)=grld$ THEN lgrld=g
 3510NEXT
 3520REM **** lgrld=2 ****
 3530PROCpanemove(lgrld)
 3540PROCclick(4,pane_handle%,lgrld-1)
 3550PROCclick(4,graphics_handle%,6)
 3560ENDPROC
 3570 
 3580DEFPROCgrclicked(icon%)
 3590IF icon%>-1 AND icon%<ngrfiles THEN
 3600PROCalterIcon(pane_handle%,grblacked-1,"",&17006039,1)
 3610grblacked=icon%+1
 3620PROCalterIcon(pane_handle%,grblacked-1,"",&70006039,1)
 3630ENDIF
 3640ENDPROC
 3650 
 3660DEFPROCpanemove(whereto)
 3670!block%=pane_handle%
 3680SYS"Wimp_GetWindowState",,block%
 3690block%!24=40*(whereto-1)
 3700IF inload=FALSE THEN SYS"Wimp_OpenWindow",,block%
 3710ENDPROC
 3720 
 3730 
 3740DEFPROCjustmoved
 3750IF Go=1 THEN Go=2:Ogo=1 ELSE Go=1:Ogo=2
 3760huff()=nhuff()
 3770phuff=nphuff
 3780PROCstore
 3790PROCcheckifhuff
 3800IF playing% THEN PROCsetgotext
 3810First=-1:Second=-1
 3820ENDPROC
 3830 
 3840DEFPROCclick(button%,window%,icon%)
 3850IF button%=2 THEN PROCmenucreate(window%):ENDPROC
 3860IF window%=-2 AND button%=4 THEN PROCopenwindow(main_handle%)
 3870IF window%=save_handle% THEN
 3880IF icon%=0 THEN PROCstartdrag
 3890IF icon%=9 THEN
 3900IF button%=1 THEN iconclicked=TRUE
 3910PROCsave(FNgettext(save_handle%,10))
 3920iconclicked=FALSE
 3930ENDIF
 3940ENDIF
 3950IF window%=pane_handle% THEN
 3960PROCgrclicked(icon%)
 3970ENDIF
 3980IF window%=graphics_handle% THEN
 3990IF icon%=6 THEN
 4000IF grblacked<>loaded OR firstload=TRUE THEN
 4010lgrld=grblacked
 4020PROCloadgraphics("<Draughts$Dir>.Graphics."+graphic$(lgrld))
 4030ENDIF
 4040IF button%=4 THEN !block%=graphics_handle%:PROCclose
 4050ENDIF
 4060ENDIF
 4070IF window%=players_handle% THEN
 4080IF icon%=3 OR icon%=7 THEN
 4090IF icon%=3 THEN Plyr1p=Plyr1p EOR 1
 4100IF icon%=7 THEN Plyr2p=Plyr2p EOR 1
 4110IF Plyr1p=0 THEN P1$="User" ELSE P1$="Archie"
 4120IF Plyr2p=0 THEN P2$="User" ELSE P2$="Archie"
 4130IF icon%=3 THEN
 4140PROCalterIcon(players_handle%,3,"#"+P1$,0,1)
 4150ELSE
 4160PROCalterIcon(players_handle%,7,"#"+P2$,0,1)
 4170ENDIF
 4180ENDIF
 4190IF button%=1 AND icon%=19 THEN icon%=20:button%=4
 4200IF button%=1 AND icon%=20 THEN icon%=19:button%=4
 4210IF icon%=19 AND levelp%>1 THEN levelp%-=1:PROCalterIcon(players_handle%,18,"#"+STR$levelp%,0,1)
 4220IF icon%=20 AND levelp%<ld THEN levelp%+=1:PROCalterIcon(players_handle%,18,"#"+STR$levelp%,0,1)
 4230IF icon%=26 THEN
 4240level%=levelp%
 4250Plyr1=Plyr1p:Plyr2=Plyr2p
 4260IF Go=1 AND Plyr1=0 THEN incomp=FALSE
 4270IF Go=2 AND Plyr2=0 THEN incomp=FALSE
 4280IF Plyr1=0 THEN P1$="User" ELSE P1$="Archie"
 4290IF Plyr2=0 THEN P2$="User" ELSE P2$="Archie"
 4300PROCalterIcon(main_handle%,mplayer1,"#"+P1$,0,1)
 4310PROCalterIcon(main_handle%,mplayer2,"#"+P2$,0,1)
 4320IF button%=4 THEN SYS"Wimp_CreateMenu",,-1
 4330ENDIF
 4340ENDIF
 4350IF window%=stepthru_handle% AND icon% <5 THEN
 4360PROCstepthru(icon%)
 4370ENDIF
 4380IF window%=main_handle% AND playing%=TRUE AND incomp=FALSE AND instep=FALSE THEN
 4390ok=FALSE
 4400IF dimension=2 AND icon%<64 THEN ok=TRUE
 4410IF dimension=3 AND icon%<129 THEN ok=TRUE
 4420IF ok THEN
 4430IF dimension=3 THEN PROCfindoutwhich
 4440IF icon%<64 AND icon%>-1 THEN PROCboardclick(icon%)
 4450ENDIF
 4460ENDIF
 4470ENDPROC
 4480 
 4490DEFPROCsetupmenus
 4500DIM mainm 520,barm 520,miscm 520,dimenm 520,huffm 520,canchm 520,cancfm 520
 4510menu=mainm
 4520$menu="Draughts":menu!12=&70207:menu!16=204:menu!20=44:menu!24=0:menu+=28
 4530menu!0=0:menu!4=miscm:menu!8=&7000021:$(menu+12)="Misc"
 4540menu!24=0:menu!28=-1:menu!32=&7000021:$(menu+36)="Step thru..."
 4550menu!48=8:menu!52=players_handle%:menu!56=&7000021:$(menu+60)="Players"
 4560menu!72=0:menu!76=-1:menu!80=&7000021:$(menu+84)="Graphics..."
 4570menu!96=2:menu!100=dimenm:menu!104=&7000021:$(menu+108)="Board"
 4580menu!120=0:menu!124=huffm:menu!128=&7000021:$(menu+132)="Huff"
 4590menu!144=0:menu!148=-1:menu!152=&7000021:$(menu+156)="Concede"
 4600menu!168=&80:menu!172=-1:menu!176=&7000021:$(menu+180)="New game"
 4610menu=barm
 4620$menu="Draughts":menu!12=&70207:menu!16=120:menu!20=44:menu!24=0:menu+=28
 4630menu!0=0:menu!4=info_handle%:menu!8=&7000021:$(menu+12)="Info"
 4640menu!24=8:menu!28=save_handle%:menu!32=&7000021:$(menu+36)="Save"
 4650menu!48=&80:menu!52=-1:menu!56=&7000021:$(menu+60)="Quit"
 4660menu=miscm
 4670$menu="Misc":menu!12=&70207:menu!16=96:menu!20=44:menu!24=0:menu+=28
 4680menu!0=0:menu!4=info_handle%:menu!8=&7000021:$(menu+12)="Info"
 4690menu!24=&88:menu!28=save_handle%:menu!32=&7000021:$(menu+36)="Save"
 4700menu=dimenm
 4710$menu="Board":menu!12=&70207:menu!16=208:menu!20=44:menu!24=0:menu+=28
 4720menu!0=0:menu!4=-1:menu!8=&7000021:$(menu+12)="2 dimensions"
 4730menu!24=&80:menu!28=-1:menu!32=&7000021:$(menu+36)="3 dimensions"
 4740menu=huffm
 4750$menu="Huff":menu!12=&70207:menu!16=100:menu!20=44:menu!24=0:menu+=28
 4760menu!0=0:menu!4=-1:menu!8=&7000021:$(menu+12)="Huff"
 4770menu!24=&80:menu!28=-1:menu!32=&7000021:$(menu+36)="Force"
 4780menu=canchm
 4790$menu="Huff":menu!12=&70207:menu!16=112:menu!20=44:menu!24=0:menu+=28
 4800menu!0=&80:menu!4=-1:menu!8=&7000021:$(menu+12)="Cancel"
 4810menu=cancfm
 4820$menu="Force":menu!12=&70207:menu!16=112:menu!20=44:menu!24=0:menu+=28
 4830menu!0=&80:menu!4=-1:menu!8=&7000021:$(menu+12)="Cancel"
 4840ENDPROC
 4850 
 4860DEFPROCmenucreate(window%)
 4870mencr%=window%
 4880IF mencr%<>-2 AND mencr%<>main_handle% THEN ENDPROC
 4890IF mencr%=-2 THEN SYS"Wimp_CreateMenu",,barm,block%!0-64,228
 4900IF mencr%=main_handle% THEN SYS"Wimp_CreateMenu",,mainm,block%!0-64,block%!4+16
 4910ENDPROC
 4920 
 4930DEFFNgettext(window%,icon%)
 4940!block2%=window%:block2%!4=icon%:SYS"Wimp_GetIconState",,block2%
 4950IF (block2%!24 AND 256)=256 THEN :=$(block2%!28) ELSE :=$(block2%+28)
 4960 
 4970DEFPROCslotsize(newslot)
 4980SYS"Wimp_SlotSize",newslot,-1 TO nslot
 4990ENDPROC
 5000 
 5010DEFPROCstepthru(icon%)
 5020IF icon%=0 THEN steppos=0:PROCrestore(steppos)
 5030IF icon%=4 THEN steppos=spos:PROCrestore(steppos)
 5040IF icon%=1 AND steppos>0 THEN steppos-=1:PROCrestore(steppos)
 5050IF icon%=3 AND steppos<spos THEN steppos+=1:PROCrestore(steppos)
 5060IF icon%=2 THEN
 5070!block%=stepthru_handle%:PROCclose
 5080instep=FALSE:playing%=TRUE
 5090conceded=FALSE
 5100PROCrestore(steppos):PROCcheckifhuff
 5110ENDIF
 5120ENDPROC
 5130 
 5140DEFPROCfindoutwhich
 5150IF icon%=64 AND FNclicksquare THEN PROCfindoutreal
 5160IF icon%>64 AND FNclicksquare THEN PROCfindoutreal
 5170IF icon%>64 THEN icon%-=65
 5180ENDPROC
 5190 
 5200DEFFNclicksquare
 5210SYS"Wimp_GetPointerInfo",,block%
 5220mxco=!block%:myco=block%!4
 5230SYS"OS_ReadModeVariable",-1,3 TO ,,coll
 5240IF POINT(mxco,myco)=FNmodecol1 THEN :=TRUE
 5250IF POINT(mxco,myco)=FNmodecol2 THEN :=TRUE
 5260IF POINT(mxco,myco)=FNmodecol3 THEN :=TRUE
 5270=FALSE
 5280 
 5290DEFFNmodecol1
 5300IF coll=1 THEN :=1
 5310IF coll=3 THEN :=3
 5320IF coll=15 THEN :=7
 5330IF coll=63 THEN :=0
 5340=FALSE
 5350 
 5360DEFFNmodecol2
 5370IF coll=1 THEN :=1
 5380IF coll=3 THEN :=3
 5390IF coll=15 THEN :=11
 5400IF coll=63 THEN :=3
 5410=FALSE
 5420 
 5430DEFFNmodecol3
 5440IF coll=1 THEN :=1
 5450IF coll=3 THEN :=2
 5460IF coll=15 THEN :=10
 5470IF coll=63 THEN :=12
 5480=FALSE
 5490 
 5500DEFPROCfindoutreal
 5510SYS"Wimp_GetPointerInfo",,block%
 5520mxco=block%!0:myco=block%!4
 5530!block%=main_handle%
 5540SYS"Wimp_GetWindowState",,block%
 5550scrllx=block%!20:scrlly=block%!24
 5560mxco=mxco+(scrllx-block%!4)
 5570myco=myco+(scrlly-block%!16)
 5580found=0:counter=0
 5590REPEAT
 5600counter+=1
 5610IF mxco>sqsizes(0,counter) AND mxco<sqsizes(2,counter) AND myco>sqsizes(1,counter) AND myco<sqsizes(3,counter) THEN found=counter
 5620UNTIL found<>0 OR counter=63
 5630IF found<>0 THEN icon%=found
 5640IF icon%=64 THEN icon%=0
 5650IF icon%>64 THEN icon%-=65
 5660ENDPROC
 5670 
 5680DEFPROCboardclick(icon%)
 5690IF button%=1 AND First<>-1 THEN PROCinter(icon%):ENDPROC
 5700IF button%=1 THEN ENDPROC
 5710IF icon%=First AND First<>-1 THEN First=-1:PROCsetpieceflags(icon%,black):PROCclearint:ENDPROC
 5720IF First=-1 AND (square(icon%)=Go OR square(icon%)=Go+2) THEN First=icon%:PROCsetpieceflags(icon%,red):ENDPROC
 5730IF First<>-1 AND square(icon%)=0 THEN
 5740Second=icon%
 5750IF FNlegal THEN PROCmove
 5760ENDIF
 5770ENDPROC
 5780 
 5790DEFPROCinter(icon%)
 5800int(0)=First:lint=int(nint)
 5810IF nint>0 AND icon%=lint THEN PROCunint(icon%):ENDPROC
 5820set=FALSE
 5830IF square(First)>2 THEN d1=TRUE:d2=TRUE
 5840IF square(First)=1 THEN d1=TRUE:d2=FALSE
 5850IF square(First)=2 THEN d1=FALSE:d2=TRUE
 5860IF square(icon%)=0 THEN
 5870IF icon%=lint-14 AND FNrow(icon%)+2 = FNrow(lint) AND d1=TRUE THEN
 5880IF FNopp(lint-7) THEN set=TRUE
 5890ENDIF
 5900IF icon%=lint-18 AND FNrow(icon%)+2 = FNrow(lint) AND d1=TRUE THEN
 5910IF FNopp(lint-9) THEN set=TRUE
 5920ENDIF
 5930IF icon%=lint+14 AND FNrow(icon%)-2 = FNrow(lint) AND d2=TRUE THEN
 5940IF FNopp(lint+7) THEN set=TRUE
 5950ENDIF
 5960IF icon%=lint+18 AND FNrow(icon%)-2 = FNrow(lint) AND d2=TRUE THEN
 5970IF FNopp(lint+9) THEN set=TRUE
 5980ENDIF
 5990ENDIF
 6000IF set THEN
 6010PROCsetpieceflags(icon%,green)
 6020nint+=1
 6030int(nint)=icon%
 6040ENDIF
 6050ENDPROC
 6060 
 6070DEFPROCclearint
 6080IF nint>0 THEN
 6090FOR i=1 TO nint
 6100PROCsetpieceflags(int(i),black)
 6110NEXT
 6120ENDIF
 6130nint=0:int()=0
 6140ENDPROC
 6150 
 6160DEFPROCunint(icon%)
 6170PROCsetpieceflags(icon%,black)
 6180int(nint)=0
 6190nint-=1
 6200ENDPROC
 6210 
 6220DEFFNlegal
 6230IF square(First)>2 THEN d1=TRUE:d2=TRUE
 6240IF square(First)=1 THEN d1=TRUE:d2=FALSE
 6250IF square(First)=2 THEN d1=FALSE:d2=TRUE
 6260ok=FALSE
 6270IF nint=0 THEN
 6280IF inforce=FALSE THEN
 6290
 6300IF Second-First=-7 AND d1=TRUE AND FNrow(Second)+1 = FNrow(First) THEN ok=TRUE
 6310IF Second-First=-9 AND d1=TRUE AND FNrow(Second)+1 = FNrow(First) THEN ok=TRUE
 6320IF Second-First=7 AND d2=TRUE AND FNrow(Second)-1 = FNrow(First) THEN ok=TRUE
 6330IF Second-First=9 AND d2=TRUE AND FNrow(Second)-1 = FNrow(First) THEN ok=TRUE
 6340ENDIF
 6350
 6360:
 6370IF Second-First=-14 AND d1=TRUE AND FNrow(Second)+2 = FNrow(First) AND FNopp(Second+7) THEN PROCdeleteopp(Second+7):ok=TRUE
 6380IF Second-First=-18 AND d1=TRUE AND FNrow(Second)+2 = FNrow(First) AND FNopp(Second+9) THEN PROCdeleteopp(Second+9):ok=TRUE
 6390IF Second-First=14 AND d2=TRUE AND FNrow(Second)-2 = FNrow(First) AND FNopp(Second-7) THEN PROCdeleteopp(Second-7):ok=TRUE
 6400IF Second-First=18 AND d2=TRUE AND FNrow(Second)-2 = FNrow(First) AND FNopp(Second-9) THEN PROCdeleteopp(Second-9):ok=TRUE
 6410ENDIF
 6420IF ok=TRUE THEN :=TRUE
 6430IF nint=0 THEN :=0
 6440ok=FALSE
 6450IF Second-int(nint)=-14 AND d1=TRUE AND FNrow(Second)+2 = FNrow(int(nint)) AND FNopp(Second+7) THEN PROCdeleteopp(Second+7):ok=TRUE
 6460IF Second-int(nint)=-18 AND d1=TRUE AND FNrow(Second)+2 = FNrow(int(nint)) AND FNopp(Second+9) THEN PROCdeleteopp(Second+9):ok=TRUE
 6470IF Second-int(nint)=14 AND d2=TRUE AND FNrow(Second)-2 = FNrow(int(nint)) AND FNopp(Second-7) THEN PROCdeleteopp(Second-7):ok=TRUE
 6480IF Second-int(nint)=18 AND d2=TRUE AND FNrow(Second)-2 = FNrow(int(nint)) AND FNopp(Second-9) THEN PROCdeleteopp(Second-9):ok=TRUE
 6490IF ok=FALSE THEN :=0
 6500FOR i=1 TO nint
 6510IF int(i)-int(i-1)=-14 AND d1=TRUE THEN PROCdeleteopp(int(i)+7)
 6520IF int(i)-int(i-1)=-18 AND d1=TRUE THEN PROCdeleteopp(int(i)+9)
 6530IF int(i)-int(i-1)=14 AND d2=TRUE THEN PROCdeleteopp(int(i)-7)
 6540IF int(i)-int(i-1)=18 AND d2=TRUE THEN PROCdeleteopp(int(i)-9)
 6550NEXT
 6560PROCclearint
 6570=TRUE
 6580 
 6590DEFFNopp(opchk)
 6600IF opchk<0 OR opchk>63 THEN :=FALSE
 6610IF square(opchk)=Ogo OR square(opchk)=Ogo+2 THEN :=TRUE
 6620=FALSE
 6630 
 6640DEFPROCdeleteopp(delcon)
 6650square(delcon)=0
 6660IF thicondone=FALSE THEN
 6670PROCsetgoicon(FALSE):PROCpoll
 6680IF finished% THEN PROCend
 6690thicondone=TRUE
 6700ENDIF
 6710nphuff=FALSE
 6720PROCsetpiece(delcon,0)
 6730ENDPROC
 6740 
 6750DEFPROCmove
 6760IF thicondone=FALSE THEN
 6770PROCsetgoicon(FALSE):PROCpoll
 6780IF finished% THEN PROCend
 6790ENDIF
 6800IF Go=1 AND Second<8 THEN square(First)=3
 6810IF Go=2 AND Second>55 THEN square(First)=4
 6820square(Second)=square(First)
 6830square(First)=0
 6840PROCsetpiece(First,0)
 6850PROCsetpieceflags(First,black)
 6860PROCsetpiece(Second,square(Second))
 6870PROCsetpieceflags(Second,black)
 6880thicondone=FALSE
 6890FOR h=0TOnphuff-1
 6900IF First=nhuff(h) THEN nhuff(h)=Second
 6910NEXT
 6920PROCcountmen
 6930PROCjustmoved
 6940IF inforce THEN fdone=TRUE
 6950ENDPROC
 6960 
 6970DEFPROCsetupvarsndims
 6980conceded=FALSE
 6990indim=FALSE
 7000incomp=FALSE
 7010iconclicked=FALSE
 7020phuff=0:nphuff=0
 7030nint=0
 7040hffd=FALSE
 7050inforce=FALSE
 7060inhuff=FALSE
 7070mainopen=FALSE
 7080finished%=FALSE
 7090instep=FALSE
 7100thicondone=FALSE
 7110Plyr1=0:Plyr2=0:level%=1
 7120pos=0:grld=0:playing%=TRUE
 7130First=-1:Second=-1
 7140dimension=0
 7150Go=1:Ogo=2:Plyr1$="":Plyr2$=""
 7160ld=5
 7170DIM xcoord(63),ycoord(8)
 7180DIM square(63),graphic$(255),numsq(31)
 7190DIM store 16384,huff(11),grsizes(1,64),nhuff(11),sqsizes(3,63)
 7200DIM int(12)
 7210DIM quad(ld,12,63),bestpos(63),piece(ld),lev(ld),bscore(ld),score(ld)
 7220DIM bestpos2(63)
 7230DIM d1(ld),d2(ld),king(ld,12),maxlev(ld),oldnj(ld,12),nj(ld,12)
 7240DIM pjump(ld),tempscore(ld),pmove(ld)
 7250loaded=0
 7260ENDPROC
 7270 
 7280DEFPROCvars3d
 7290black=&77000038
 7300red=&B7000038
 7310green=&A7000038
 7320yellow=&97000038
 7330mplayer1=134:mplayer2=137
 7340pcname1=133:pcname2=136
 7350goicon=158
 7360m1_icon=150:m2_icon=151
 7370k3_icon=152:k4_icon=153
 7380Gotexticon=157
 7390ENDPROC
 7400 
 7410DEFPROCvars2d
 7420black=&7700303A
 7430red=&B700303A
 7440green=&A700303A
 7450yellow=&9700303A
 7460mplayer1=71:mplayer2=73
 7470pcname1=68:pcname2=70
 7480goicon=72
 7490m1_icon=96:m2_icon=98
 7500k3_icon=97:k4_icon=99
 7510Gotexticon=95
 7520ENDPROC
 7530 
 7540DEFPROCcheckifwon
 7550IF m1=0 AND k3=0 THEN
 7560playing%=FALSE
 7570IF RIGHT$(Plyr2$,1)="s" THEN won$="!"+Plyr2$+" have won!" ELSE won$="!"+Plyr2$+" has won!"
 7580PROCalterIcon(main_handle%,Gotexticon,won$,0,1)
 7590ENDIF
 7600IF m2=0 AND k4=0 THEN
 7610playing%=FALSE
 7620IF RIGHT$(Plyr1$,1)="s" THEN won$="!"+Plyr1$+" have won!" ELSE won$="!"+Plyr1$+" has won!"
 7630PROCalterIcon(main_handle%,Gotexticon,won$,0,1)
 7640ENDIF
 7650IF playing%=FALSE THEN PROCgreymenu(0,TRUE,TRUE):PROCalterIcon(main_handle%,goicon,"#",0,1)
 7660ENDPROC
 7670 
 7680DEFPROCgreymenu(gr1,gr2,gr3)
 7690IF gr1 THEN mainm!60=&7400021
 7700IF gr2 THEN mainm!156=&7400021
 7710IF gr3 THEN mainm!180=&7400021
 7720ENDPROC
 7730 
 7740DEFPROCkeypressed(window%,icon%,key%)
 7750IF window%=save_handle% AND icon%=10 AND key%=13 THEN
 7760PROCsave(FNgettext(save_handle%,10))
 7770ELSE
 7780SYS"Wimp_ProcessKey",key%
 7790ENDIF
 7800ENDPROC
 7810 
 7820DEFPROCdecodemenu
 7830c=FALSE
 7840closeit=FALSE
 7850IF mencr%=-2 AND block%!0=2 THEN finished%=TRUE
 7860IF mencr%=main_handle% THEN
 7870IF block%!0=1 THEN
 7880c=TRUE
 7890closeit=TRUE
 7900PROCgreymenu(TRUE,TRUE,TRUE)
 7910steppos=pos-1
 7920spos=pos-1
 7930instep=TRUE
 7940incomp=FALSE
 7950playing%=FALSE:PROCsetgoicon(FALSE)
 7960PROCopenwindow(stepthru_handle%)
 7970ENDIF
 7980IF c=0 AND block%!0=3 THEN PROCopengraphics:c=TRUE
 7990IF c=0 AND block%!0=4 AND block%!4=0 THEN PROCsetdimension(2):c=TRUE
 8000IF c=0 AND block%!0=4 AND block%!4=1 THEN PROCsetdimension(3):c=TRUE
 8010IF c=0 AND block%!0=5 AND block%!4=0 AND phuff<>0 THEN PROChuff:hffd=TRUE:c=TRUE
 8020IF c=0 AND block%!0=5 AND block%!4=1 AND phuff<>0 THEN PROCforce:hffd=TRUE:c=TRUE
 8030IF c=0 AND block%!0=6 THEN PROCconcede:c=TRUE
 8040IF c=0 AND block%!0=7 THEN PROCnewgame:c=TRUE
 8050ENDIF
 8060IF hffd THEN hffd=FALSE:ENDPROC
 8070SYS"Wimp_GetPointerInfo",,block%
 8080IF block%!8=1 AND closeit=FALSE THEN
 8090PROCmenucreate(mencr%)
 8100ENDIF
 8110ENDPROC
 8120 
 8130DEFPROCmessage
 8140CASE block%!16 OF
 8150WHEN 0:finished%=TRUE
 8160WHEN 2:PROCsave(FNtidy(block%+44))
 8170WHEN 3:IF block%!12=0 AND block%!40=&560 THEN PROCload(FNtidy(block%+44))
 8180WHEN &502:PROChelp
 8190WHEN &400C0:
 8200IF (mencr%=main_handle% AND block%!32=0 AND block%!36=1) THEN PROCopensave
 8210IF (mencr%=-2 AND block%!32=1) THEN PROCopensave
 8220IF (mencr%=main_handle% AND block%!32=2) THEN PROCopenplayers
 8230ENDCASE
 8240ENDPROC
 8250 
 8260DEFPROCopengraphics
 8270!block%=graphics_handle%
 8280SYS"Wimp_GetWindowState",,block%
 8290xoffset=block%!4:yoffset=block%!8
 8300!block%=pane_handle%
 8310SYS"Wimp_GetWindowState",,block%
 8320block%!4=xoffset+16
 8330block%!8=yoffset+88
 8340block%!12=block%!4+204
 8350block%!16=block%!8+156
 8360SYS"Wimp_OpenWindow",,block%
 8370!block%=graphics_handle%
 8380SYS"Wimp_GetWindowState",,block%
 8390block%!28=pane_handle%
 8400SYS"Wimp_OpenWindow",,block%
 8410PROCgrclicked(lgrld-1)
 8420PROCpanemove(lgrld)
 8430ENDPROC
 8440 
 8450DEFPROCopen
 8460IF !block%=graphics_handle% THEN
 8470xoffset=block%!4:yoffset=block%!8
 8480xoffset2=block%!12:yoffset2=block%!16
 8490!block%=pane_handle%
 8500SYS"Wimp_GetWindowState",,block%
 8510block%!4=xoffset+16
 8520block%!8=yoffset+88
 8530block%!12=block%!4+204
 8540block%!16=block%!8+156
 8550SYS"Wimp_OpenWindow",,block%
 8560!block%=graphics_handle%
 8570SYS"Wimp_GetWindowState",,block%
 8580block%!4=xoffset:block%!8=yoffset
 8590block%!12=xoffset2:block%!16=yoffset2
 8600block%!28=pane_handle%
 8610SYS"Wimp_OpenWindow",,block%
 8620ELSE
 8630SYS"Wimp_OpenWindow",,block%
 8640ENDIF
 8650ENDPROC
 8660 
 8670DEFPROCclose
 8680IF !block%=main_handle% THEN mainopen=FALSE
 8690IF !block%=graphics_handle% THEN
 8700SYS"Wimp_CloseWindow",,block%
 8710!block%=pane_handle%
 8720ENDIF
 8730SYS"Wimp_CloseWindow",,block%
 8740ENDPROC
 8750 
 8760DEFPROCsetplyrnames
 8770PROCalterIcon(main_handle%,pcname1,"#"+Plyr1$,0,1)
 8780PROCalterIcon(main_handle%,pcname2,"#"+Plyr2$,0,1)
 8790ENDPROC
 8800 
 8810DEFFNrow(rch)
 8820IF rch<0 THEN :=rch+100
 8830rch=(rch DIV 8) +1
 8840IF rch>0 AND rch<9 THEN :=rch
 8850=(rch+100)
 8860 
 8870DEF PROCalterIcon(whandle%,ihandle%,text$,flgs%,redraw)
 8880block%!0=whandle%:block%!4=ihandle%:SYS"Wimp_GetIconState",,block%
 8890IF LEFT$(text$,1)="!" THEN
 8900$block%!28=RIGHT$(text$,LEN(text$)-1)
 8910ENDIF
 8920IF LEFT$(text$,1)="#" THEN
 8930$(block%+28)=RIGHT$(text$,LEN(text$)-1)
 8940IF flgs%=0 THEN SYS"Wimp_DeleteIcon",,block%:block%!4=whandle%:SYS"Wimp_CreateIcon",,block%+4
 8950ENDIF
 8960IF flgs%<>0 THEN
 8970SYS"Wimp_DeleteIcon",,block%
 8980block%!24=flgs%
 8990block%!4=whandle%
 9000SYS"Wimp_CreateIcon",,block%+4
 9010ENDIF
 9020IF redraw=0 THEN ENDPROC
 9030SYS"Wimp_ForceRedraw",whandle%,block%!8,block%!12,block%!16,block%!20
 9040ENDPROC
 9050 
 9060DEFPROCungreymenu(gr1,gr2,gr3)
 9070IF gr1 THEN mainm!60=&7000021
 9080IF gr2 THEN mainm!156=&7000021
 9090IF gr3 THEN mainm!180=&7000021
 9100ENDPROC
 9110 
 9120 
 9130DEFFNtidy(loc%)
 9140tidy$=""
 9150REPEAT
 9160tidy$+=CHR$(?loc%)
 9170loc%+=1
 9180UNTIL ?loc%<32
 9190=tidy$
 9200DEFPROCloadgraphics(grfile$)
 9210IF grfile$="" THEN ENDPROC
 9220A%=OPENINgrfile$
 9230present=A%
 9240lensp=EXT#A%:lensp+=((lensp-69000)*9)
 9250CLOSE#A%
 9260IF present=0 THEN PROCerror("Unable to load graphics file - perhaps the Draughts disc is not present",FALSE):!block%=graphics_handle%:PROCclose:ENDPROC
 9270SYS"Hourglass_On"
 9280IF inload=FALSE THEN
 9290SYS"XOS_SpriteOp",256+25,sprites%,"board"
 9300FORa=1TO4
 9310FORb=0TO9
 9320SYS"XOS_SpriteOp",256+25,sprites%,"square"+STR$a+STR$b
 9330NEXT:NEXT
 9340ENDIF
 9350PROCslotsize(slotsize+lensp)
 9360IF nslot<(slotsize+lensp) THEN
 9370PROCerror("Unable to allocate sufficient memory for graphics file - approximately "+STR$(lensp DIV 1024)+"k is needed.",0)
 9380IF inload=TRUE AND firstload=TRUE THEN PROCend
 9390ENDIF
 9400IF nslot<(slotsize+lensp) THEN PROCslotsize(slotsize):ENDPROC
 9410!sprites%+=lensp
 9420SYS"OS_SpriteOp",267,sprites%,grfile$
 9430SYS"OS_SpriteOp",256+13,sprites%,block%,256,17
 9440Plyr1$=FNtidy(block%)
 9450SYS"OS_SpriteOp",256+13,sprites%,block%,256,18
 9460Plyr2$=FNtidy(block%)
 9470SYS"OS_SpriteOp",256+26,sprites%,Plyr1$,"square10"
 9480SYS"OS_SpriteOp",256+26,sprites%,Plyr2$,"square20"
 9490Plyr1$=LEFT$(Plyr1$,LEN(Plyr1$)-2)
 9500Plyr2$=LEFT$(Plyr2$,LEN(Plyr2$)-2)
 9510FOR a=1TO4
 9520SYS"OS_SpriteOp",256+40,sprites%,"square"+STR$a+"0" TO ,,,w,h
 9530FOR b=1TO8
 9540grsizes(0,(a*10)+b)=2*(w*((16+b)/24)):grsizes(1,(a*10)+b)=4*(h*((16+b)/24))
 9550SYS"OS_SpriteOp",256+15,sprites%,"square"+STR$a+STR$b,0,w*((16+b)/24),h*((16+b)/24),12
 9560SYS"OS_SpriteOp",256+29,sprites%,"square"+STR$a+STR$b
 9570SYS"OS_SpriteOp",256+60,sprites%,"square"+STR$a+STR$b
 9580!block%=16+b:block%!4=16+b
 9590 
 9600block%!8=24:block%!12=24
 9610SYS"OS_SpriteOp",256+52,sprites%,"square"+STR$a+"0",0,0,0,block%
 9620SYS"OS_SpriteOp",256+61,sprites%,"square"+STR$a+STR$b
 9630GCOL0
 9640SYS"OS_SpriteOp",256+52,sprites%,"square"+STR$a+"0",0,0,&8,block%,pixel
 9650NEXT
 9660NEXT
 9670SYS"OS_SpriteOp",256+60,sprites%,0
 9680loaded=lgrld
 9690PROCsetplyrnames
 9700bdimens=dimension:dimension=0:PROCsetdimension(bdimens)
 9710SYS"Hourglass_Off"
 9720ENDPROC
 9730 
 9740DEFPROCstartdrag
 9750!block%=save_handle%
 9760SYS"Wimp_GetWindowState",,block%
 9770ysize%=block%!16-block%!8
 9780x%=block%!4:y%=block%!8
 9790block%!4=0
 9800SYS"Wimp_GetIconState",,block%
 9810!block%=0
 9820block%!4=5
 9830block%!8+=x%
 9840block%!12+=y%+ysize%
 9850block%!16+=x%
 9860block%!20+=y%+ysize%
 9870block%!24=0
 9880block%!28=0
 9890SYS"OS_ReadModeVariable",-1,4 TO ,,xtentsh
 9900SYS"OS_ReadModeVariable",-1,5 TO ,,ytentsh
 9910SYS"OS_ReadModeVariable",-1,11 TO ,,xtent
 9920SYS"OS_ReadModeVariable",-1,12 TO ,,ytent
 9930block%!32=((xtent+1)*2^xtentsh)-1
 9940block%!36=((ytent+1)*2^ytentsh)-1
 9950SYS"Wimp_DragBox",,block%
 9960ENDPROC
 9970 
 9980DEFPROCdragdone
 9990SYS"Wimp_GetPointerInfo",,block%
10000!block%=60
10010block%!20=block%!12
10020block%!12=0
10030block%!24=block%!16
10040block%!16=1
10050block%!28=!block%
10060block%!32=block%!4
10070block%!40=&560
10080$(block%+44)=FNlastbit(FNgettext(save_handle%,10))
10090SYS"Wimp_SendMessage",17,block%,block%!20
10100ENDPROC
10110 
10120DEFFNlastbit(lb$)
10130lbr$="":lbc=0
10140REPEAT
10150lbc+=1
10160lbr$=RIGHT$(lb$,lbc)
10170UNTIL LEFT$(lbr$,1)="." OR LEN(lbr$)=LEN(lb$)
10180IF LEFT$(lb$,lbc)="." THEN :=RIGHT$(lbr$,LEN(lbr$)-1)
10190=lbr$
10200 
10210DEFPROCsave(savename$)
10220IF INSTR(savename$,".")<1 THEN PROCerror("To save, drag the file icon to a directory viewer",FALSE):ENDPROC
10230SYS"Hourglass_On"
10240A%=OPENOUTsavename$
10250BPUT#A%,dimension
10260BPUT#A%,Go
10270BPUT#A%,Plyr1
10280BPUT#A%,Plyr2
10290BPUT#A%,level%
10300BPUT#A%,graphic$(lgrld);
10310BPUT#A%,STRING$(10-LEN(graphic$(lgrld)),".");
10320BPUT#A%,pos
10330FOR p=0TO(pos*44)-1
10340BPUT#A%,store?p
10350NEXT
10360CLOSE#A%
10370OSCLI"settype "+savename$+" 560"
10380SYS"Hourglass_Off"
10390IF iconclicked=FALSE THEN SYS"Wimp_CreateMenu",,-1
10400filename$=savename$
10410PROCalterIcon(save_handle%,10,"!"+filename$,0,1)
10420ENDPROC
10430 
10440DEFPROCconcede
10450playing%=FALSE
10460conceded=TRUE
10470PROCgreymenu(0,TRUE,TRUE)
10480IF Go=1 THEN Gcn$=Plyr1$ ELSE Gcn$=Plyr2$
10490IF RIGHT$(Gcn$,1)="s" THEN Gcn$+=" concede" ELSE Gcn$+=" concedes"
10500PROCalterIcon(main_handle%,Gotexticon,"!"+Gcn$,0,1)
10510PROCalterIcon(main_handle%,goicon,"#",0,1)
10520Go+=2
10530ENDPROC
10540 
10550DEFPROCnewgame
10560conceded=FALSE
10570SYS"Hourglass_On"
10580incomp=FALSE
10590IF instep THEN instep=FALSE:!block%=stepthru_handle%:PROCclose
10600playing%=TRUE
10610PROCrestore(0):SYS"Wimp_ForceRedraw",main_handle%,0,-1024,1280,0
10620PROCungreymenu(TRUE,TRUE,TRUE)
10630SYS"Hourglass_Off"
10640ENDPROC
10650 
10660DEFPROCcheckifhuff
10670nhuff()=0:nphuff=0
10680FOR s=0 TO 63
10690IF square(s)<>0 AND (square(s)=Go OR square(s)=Go+2) THEN
10700si=square(s)
10710IF si=1 THEN d1=TRUE:d2=FALSE
10720IF si=2 THEN d1=FALSE:d2=TRUE
10730IF si>2 THEN d1=TRUE:d2=TRUE
10740IF (FNrow(s)-2 = FNrow(s-14)) AND d1=TRUE THEN
10750IF square(s-14)=0 AND FNopp(s-7) THEN PROCaddhuff(s)
10760ENDIF
10770IF (FNrow(s)-2 = FNrow(s-18)) AND d1=TRUE THEN
10780IF square(s-18)=0 AND FNopp(s-9) THEN PROCaddhuff(s)
10790ENDIF
10800IF (FNrow(s)+2 = FNrow(s+14)) AND d2=TRUE THEN
10810IF square(s+14)=0 AND FNopp(s+7) THEN PROCaddhuff(s)
10820ENDIF
10830IF (FNrow(s)+2 = FNrow(s+18)) AND d2=TRUE THEN
10840IF square(s+18)=0 AND FNopp(s+9) THEN PROCaddhuff(s)
10850ENDIF
10860ENDIF
10870NEXT
10880ENDPROC
10890 
10900DEFPROCaddhuff(s)
10910already=FALSE
10920FOR h=0 TO nphuff-1
10930IF nhuff(h)=s THEN already=TRUE
10940NEXT
10950IF already THEN ENDPROC
10960nhuff(nphuff)=s
10970nphuff+=1
10980ENDPROC
10990 
11000DEFPROChuff
11010inhuff=TRUE
11020setphuff=FALSE
11030!block%=graphics_handle%
11040PROCclose
11050SYS"Wimp_CreateMenu",,-1
11060done=FALSE
11070IF Go=1 THEN HGo$=Plyr2$ ELSE HGo$=Plyr1$
11080PROCalterIcon(main_handle%,Gotexticon,"!Huff "+HGo$,0,1)
11090FOR h=0TOphuff-1
11100PROCsetpieceflags(huff(h),yellow)
11110NEXT
11120IF First<>-1 THEN PROCsetpieceflags(First,black):First=-1
11130PROCclearint
11140REPEAT
11150SYS"Wimp_Poll",mask%,block% TO reason%
11160CASE reason% OF
11170WHEN 2:SYS"Wimp_OpenWindow",,block%
11180WHEN 3:SYS"Wimp_CloseWindow",,block%
11190WHEN 6:PROChuffclick(block%!8,block%!12,block%!16)
11200WHEN 9:PROChuffmenu
11210WHEN 17,18:PROChuffmessage
11220ENDCASE
11230IF finished% PROCend
11240UNTIL done
11250FOR h=0 TO phuff-1
11260PROCsetpieceflags(huff(h),black)
11270NEXT
11280IF setphuff THEN phuff=FALSE
11290PROCsetgotext
11300PROCcountmen
11310PROCcheckifhuff
11320inhuff=FALSE
11330ENDPROC
11340 
11350DEFPROChuffclick(button%,window%,icon%)
11360IF button%=2 THEN
11370IF window%=-2 THEN SYS"Wimp_CreateMenu",,barm,block%!0-64,228
11380IF window%=main_handle% THEN SYS"Wimp_CreateMenu",,canchm,block%!0-64,block%!4-16
11390mencr%=window%
11400ENDIF
11410IF button% <> 4 THEN ENDPROC
11420IF window%=-2 THEN PROCopenwindow(main_handle%)
11430IF window%=main_handle% THEN
11440ok=FALSE
11450IF dimension=2 AND icon%<64 THEN ok=TRUE
11460IF dimension=3 AND icon%<129 THEN ok=TRUE
11470IF ok THEN
11480IF dimension=3 THEN PROCfindoutwhich
11490IF icon%<64 AND icon%>0 THEN
11500found=-1
11510FOR h=0 TO phuff-1
11520IF icon%=huff(h) THEN found=huff(h)
11530NEXT
11540IF found<>-1 THEN
11550PROClightningbolt(found)
11560square(found)=0
11570done=TRUE
11580setphuff=TRUE
11590ENDIF
11600ENDIF
11610ENDIF
11620ENDIF
11630ENDPROC
11640 
11650DEFPROChuffmenu
11660IF mencr%=main_handle% THEN done=TRUE:ENDPROC
11670IF mencr%=-2 AND block%!0=2 THEN finished%=TRUE
11680SYS"Wimp_GetPointerInfo",,block%
11690IF block%!8=1 THEN SYS"Wimp_CreateMenu",,barm,block%!0-64,228
11700ENDPROC
11710 
11720DEFPROChuffmessage
11730CASE block%!16 OF
11740WHEN 0:finished%=TRUE
11750WHEN 2:PROCsave(FNtidy(block%+44))
11760WHEN 3:IF block%!12=0 AND block%!40=&560 THEN PROCload(FNtidy(block%+44)):done=TRUE
11770WHEN &502:PROChelp
11780WHEN &400C0:
11790IF (mencr%=main_handle% AND block%!32=0 AND block%!36=1) THEN PROCopensave
11800IF (mencr%=-2 AND block%!32=1) THEN PROCopensave
11810IF (mencr%=main_handle% AND block%!32=2) THEN PROCopenplayers
11820ENDCASE
11830ENDPROC
11840 
11850DEFPROClightningbolt(licon%)
11860IF dimension=3 THEN licon%+=65
11870!block%=main_handle%
11880block%!4=licon%
11890SYS"Wimp_GetIconState",,block%
11900exp=block%!8+((block%!16-block%!8)/2)
11910wyp=block%!12
11920!block%=main_handle%
11930block%!4=exp-36
11940block%!8=wyp+220
11950block%!12=block%!4+104
11960block%!16=block%!8+64
11970block%!20=-956276710
11980$(block%+24)="cloud"
11990SYS"Wimp_CreateIcon",,block% TO cldh
12000PROCalterIcon(main_handle%,cldh,"",0,1)
12010PROCpoll:IF finished% PROCend
12020!block%=main_handle%
12030block%!4=exp-20
12040block%!8=wyp+24
12050block%!12=block%!4+32
12060block%!16=block%!8+200
12070block%!20=-956276710
12080$(block%+24)="lightning"
12090SYS"Wimp_CreateIcon",,block% TO lgth
12100PROCalterIcon(main_handle%,lgth,"",0,1)
12110PROCpoll:IF finished% PROCend
12120time=TIME:REPEATUNTILTIME>time+10
12130PROCsetpiece(found,0)
12140PROCpoll:IF finished% PROCend
12150time=TIME:REPEATUNTILTIME>time+20
12160PROCalterIcon(main_handle%,lgth,"#",0,1)
12170!block%=main_handle%
12180block%!4=lgth
12190SYS"Wimp_DeleteIcon",,block%
12200PROCpoll:IF finished% PROCend
12210time=TIME:REPEATUNTILTIME>time+10
12220PROCalterIcon(main_handle%,cldh,"#",0,1)
12230!block%=main_handle%
12240block%!4=cldh
12250SYS"Wimp_DeleteIcon",,block%
12260PROCpoll:IF finished% PROCend
12270ENDPROC
12280 
12290DEFPROCforce
12300fpos=pos
12310inforce=TRUE
12320!block%=graphics_handle%
12330PROCclose
12340SYS"Wimp_CreateMenu",,-1
12350fdone=FALSE
12360IF Go=1 THEN FGo$=Plyr2$ ELSE FGo$=Plyr1$
12370IF First<>-1 THEN PROCsetpieceflags(First,black):First=-1
12380PROCclearint
12390SYS"Hourglass_On"
12400PROCrestore(pos-2)
12410SYS"Hourglass_Off"
12420PROCalterIcon(main_handle%,Gotexticon,"!Force "+FGo$,0,1)
12430REPEAT
12440SYS"Wimp_Poll",mask%,block% TO reason%
12450CASE reason% OF
12460WHEN 2:SYS"Wimp_OpenWindow",,block%
12470WHEN 3:SYS"Wimp_CloseWindow",,block%
12480WHEN 6:PROCforceclick(block%!8,block%!12,block%!16)
12490WHEN 9:PROCforcemenu
12500WHEN 17,18:PROChuffmessage
12510ENDCASE
12520IF finished% PROCend
12530UNTIL fdone
12540inforce=FALSE
12550ENDPROC
12560
12570DEFPROCforceclick(button%,window%,icon%)
12580IF button%=2 THEN
12590IF window%=-2 THEN SYS"Wimp_CreateMenu",,barm,block%!0-64,228
12600IF window%=main_handle% THEN SYS"Wimp_CreateMenu",,cancfm,block%!0-64,block%!4-16
12610mencr%=window%
12620ENDIF
12630IF button%=2 THEN ENDPROC
12640IF window%=-2 AND button%=4 THEN PROCopenwindow(main_handle%)
12650IF window%=main_handle% THEN
12660ok=FALSE
12670IF dimension=2 AND icon%<64 THEN ok=TRUE
12680IF dimension=3 AND icon%<129 THEN ok=TRUE
12690IF ok THEN
12700IF dimension=3 THEN PROCfindoutwhich
12710IF icon%<64 AND icon%>-1 THEN PROCboardclick(icon%)
12720ENDIF
12730ENDIF
12740ENDPROC
12750
12760DEFPROCforcemenu
12770IF mencr%=main_handle% THEN
12780fdone=TRUE
12790SYS"Hourglass_On"
12800PROCrestore(fpos-1)
12810SYS"Hourglass_Off"
12820ENDIF
12830IF mencr%=main_handle% THEN ENDPROC
12840IF mencr%=-2 AND block%!0=2 THEN finished%=TRUE
12850SYS"Wimp_GetPointerInfo",,block%
12860IF block%!8=1 THEN SYS"Wimp_CreateMenu",,barm,block%!0-64,228
12870ENDPROC
12880
12890DEFPROChelp
12900window%=block%!32:icon%=block%!36
12910block%!12=block%!8:block%!16=&503
12920text%=block%+20
12930$text%="This is the Draughts application.|M"
12940CASE window% OF
12950WHEN -2:$text%="Click Select over this icon to open the main playing window.|MClick Menu over this icon to open the icon bar menu for Draughts.|M"
12960WHEN main_handle%:
12970IF (dimension=3 AND icon%<129) OR (dimension=2 AND icon%<64) THEN
12980text$="This is the main playing board.|M"
12990IF inhuff=FALSE THEN
13000IF First=-1 THEN text$+="Click Select over the piece which you wish to move.  The square on which it rests will be highlighted red.  If you change your mind, click Select over the piece a second time.|M"
13010IF First<>-1 THEN text$+="Click Select over the square to which you wish your piece to move.  If you wish to make multiple jumps, use Adjust to select the intermediate squares, which will be highlighted green.|M"
13020ELSE
13030text$+="Click Select over any one of the pieces on a yellow square - that piece will then be huffed.  To cancel the operation, use the main menu.|M"
13040ENDIF
13050$text%=text$
13060ENDIF
13070WHEN pane_handle%:
13080$text%="Click on the graphics file you wish to load, then select OK.|M"
13090WHEN graphics_handle%
13100IF icon%>0 THEN $text%="Selecting OK will load the specified graphics file.|M"
13110WHEN save_handle%:
13120IF icon%=0 THEN $text%="Drag this icon to a directory viewer to save.|M"
13130IF icon%=9 THEN $text%="Selecting OK will save the current game status.|M"
13140IF icon%=10 THEN $text%="Enter the filename in this icon, then press Return to save.|M"
13150WHEN players_handle%:
13160CASE icon% OF
13170WHEN 18:$text%="This icon shows the skill level of the computer player(s), if any.|M"
13180WHEN 19:$text%="Selecting this icon will decrease the skill level of the computer player(s), if any.|M"
13190WHEN 20:$text%="Selecting this icon will increase the skill level of the computer player(s), if any.|M"
13200WHEN 3:
13210IF Plyr1=0 THEN P1$="user":P2$="computer" ELSE P1$="computer":P2$="user"
13220$text%="Selecting this icon will change player one from "+P1$+" to "+P2$+" control.|M"
13230WHEN 7:
13240IF Plyr2=0 THEN P1$="user":P2$="computer" ELSE P1$="computer":P2$="user"
13250$text%="Selecting this icon will change player two from "+P1$+" to "+P2$+" control.|M"
13260ENDCASE
13270WHEN stepthru_handle%:
13280CASE icon% OF
13290WHEN 0:$text%="This icon resets the board to the first position.|M"
13300WHEN 1:$text%="This icon moves the game status back one move.|M"
13310WHEN 2:$text%="This icon sets the current game status to that shown and resumes play.|M"
13320WHEN 3:$text%="This icon moves the game status forward one move.|M"
13330WHEN 4:$text%="This icon resets the board to the last position recorded.|M"
13340ENDCASE
13350ENDCASE
13360!block%=(LEN$text%+25)ANDNOT3
13370SYS"Wimp_SendMessage",17,block%,block%!4
13380ENDPROC
13390
13400DEFFNnextdepth(depth)
13410bscore(depth)=-100
13420pjump(depth)=FALSE
13430FOR piece(depth)=0 TO 31
13440PROCpoll:IF finished% PROCend
13450IF incomp=FALSE THEN piece(depth)=31:=0
13460score(depth)=0
13470IF quad(depth,1,numsq(piece(depth)))=FNgo(depth) OR quad(depth,1,numsq(piece(depth)))=FNkgo(depth) THEN
13480PROCdir(depth,numsq(piece(depth)))
13490maxlev(depth)=0:lev(depth)=1:PROCcheckifjump(numsq(piece(depth)),depth)
13500ENDIF
13510NEXT
13520
13530IF pjump(depth)=TRUE THEN :=bscore(depth)
13540IF depth=level% AND depth>2 THEN :=0
13550bscore(depth)=-100
13560FOR piece(depth)=0 TO 31
13570PROCpoll:IF finished% PROCend
13580IF incomp=FALSE THEN piece(depth)=31:=0
13590score(depth)=0
13600IF quad(depth,1,numsq(piece(depth)))=FNgo(depth) OR quad(depth,1,numsq(piece(depth)))=FNkgo(depth) THEN
13610PROCdir(depth,numsq(piece(depth)))
13620PROCcheckifmove(numsq(piece(depth)),depth)
13630ENDIF
13640NEXT
13650
13660IF pjump(depth)=FALSE THEN :=-500
13670=bscore(depth)
13680 
13690DEFPROCdir(depth,pc)
13700dGo=0
13710IF (depth AND 1)=1 THEN dGo=Go
13720IF dGo=0 AND Go=2 THEN dGo=1
13730IF dGo=0 AND Go=1 THEN dGo=2
13740IF quad(depth,1,pc)>2 THEN dGo+=2
13750IF dGo=1 THEN d1(depth)=TRUE:d2(depth)=FALSE
13760IF dGo=2 THEN d2(depth)=TRUE:d1(depth)=FALSE
13770IF dGo>2 THEN d1(depth)=TRUE:d2(depth)=TRUE
13780ENDPROC
13790 
13800DEFFNgo(depth)
13810dGo=0
13820IF (depth AND 1)=1 THEN dGo=Go
13830IF dGo=0 AND Go=2 THEN dGo=1
13840IF dGo=0 AND Go=1 THEN dGo=2
13850=dGo
13860
13870DEFFNkgo(depth)
13880dGo=0
13890IF (depth AND 1)=1 THEN dGo=Go
13900IF dGo=0 AND Go=2 THEN dGo=1
13910IF dGo=0 AND Go=1 THEN dGo=2
13920=dGo+2
13930
13940DEFPROCcheckifjump(piece,depth)
13950king(depth,lev(depth))=FALSE
13960oldnj(depth,lev(depth))=nj(depth,lev(depth)-1)
13970nj(depth,lev(depth))=nj(depth,lev(depth)-1)
13980IF FNrow(piece)-2 = FNrow(piece-14) AND d1(depth) THEN
13990IF quad(depth,lev(depth),piece-14)=0 AND FNcopp(depth,piece-7) THEN
14000IF quad(depth,lev(depth),piece)=1 AND (piece-14>-1 AND piece-14<8) THEN king(depth,lev(depth))=TRUE
14010FOR q=0 TO 31:quad(depth,lev(depth)+1,numsq(q))=quad(depth,lev(depth),numsq(q)):NEXT
14020quad(depth,lev(depth)+1,piece-14)=quad(depth,lev(depth),piece)
14030IF king(depth,lev(depth)) THEN quad(depth,lev(depth),piece)+=2
14040quad(depth,lev(depth)+1,piece-7)=0:quad(depth,lev(depth)+1,piece)=0
14050nj(depth,lev(depth))=oldnj(depth,lev(depth))+1
14060lev(depth)+=1
14070PROCcheckifjump(piece-14,depth)
14080lev(depth)-=1
14090king(depth,lev(depth))=FALSE
14100pjump(depth)=TRUE
14110ENDIF
14120ENDIF
14130:
14140IF FNrow(piece)-2 = FNrow(piece-18) AND d1(depth) THEN
14150IF quad(depth,lev(depth),piece-18)=0 AND FNcopp(depth,piece-9) THEN
14160IF quad(depth,lev(depth),piece)=1 AND (piece-18>-1 AND piece-18<8) THEN king(depth,lev(depth))=TRUE
14170FOR q=0 TO 31:quad(depth,lev(depth)+1,numsq(q))=quad(depth,lev(depth),numsq(q)):NEXT
14180quad(depth,lev(depth)+1,piece-18)=quad(depth,lev(depth),piece)
14190quad(depth,lev(depth)+1,piece-9)=0:quad(depth,lev(depth)+1,piece)=0
14200nj(depth,lev(depth))=oldnj(depth,lev(depth))+1
14210lev(depth)+=1
14220PROCcheckifjump(piece-18,depth)
14230lev(depth)-=1
14240king(depth,lev(depth))=FALSE
14250pjump(depth)=TRUE
14260ENDIF
14270ENDIF
14280:
14290IF FNrow(piece)+2 = FNrow(piece+14) AND d2(depth) THEN
14300IF quad(depth,lev(depth),piece+14)=0 AND FNcopp(depth,piece+7) THEN
14310IF quad(depth,lev(depth),piece)=2 AND (piece+14>55 AND piece+14<64) THEN king(depth,lev(depth))=TRUE
14320FOR q=0 TO 31:quad(depth,lev(depth)+1,numsq(q))=quad(depth,lev(depth),numsq(q)):NEXT
14330quad(depth,lev(depth)+1,piece+14)=quad(depth,lev(depth),piece)
14340quad(depth,lev(depth)+1,piece+7)=0:quad(depth,lev(depth)+1,piece)=0
14350nj(depth,lev(depth))=oldnj(depth,lev(depth))+1
14360lev(depth)+=1
14370PROCcheckifjump(piece+14,depth)
14380lev(depth)-=1
14390king(depth,lev(depth))=FALSE
14400pjump(depth)=TRUE
14410ENDIF
14420ENDIF
14430:
14440IF FNrow(piece)+2 = FNrow(piece+18) AND d2(depth) THEN
14450IF quad(depth,lev(depth),piece+18)=0 AND FNcopp(depth,piece+9) THEN
14460IF quad(depth,lev(depth),piece)=2 AND (piece+18>55 AND piece+18<64) THEN king(depth,lev(depth))=TRUE
14470FOR q=0 TO 31:quad(depth,lev(depth)+1,numsq(q))=quad(depth,lev(depth),numsq(q)):NEXT
14480quad(depth,lev(depth)+1,piece+18)=quad(depth,lev(depth),piece)
14490quad(depth,lev(depth)+1,piece+9)=0:quad(depth,lev(depth)+1,piece)=0
14500nj(depth,lev(depth))=oldnj(depth,lev(depth))+1
14510lev(depth)+=1
14520PROCcheckifjump(piece+18,depth)
14530lev(depth)-=1
14540king(depth,lev(depth))=FALSE
14550pjump(depth)=TRUE
14560ENDIF
14570ENDIF
14580:
14590IF lev(depth)>1 AND oldnj(depth,lev(depth))=nj(depth,lev(depth)) THEN
14600tempscore(depth)=lev(depth)+1
14610IF king(depth,lev(depth)-1) THEN tempscore(depth)+=1
14620IF (depth AND 1)=0 THEN tempscore(depth)=tempscore(depth)*2
14630IF depth<level% THEN
14640FOR q=0TO31
14650quad(depth+1,1,numsq(q))=quad(depth,lev(depth),numsq(q))
14660NEXT
14670tempscore(depth)-=FNnextdepth(depth+1)
14680ENDIF
14690IF tempscore(depth)>bscore(depth) OR (tempscore(depth)=bscore(depth) AND RND(2)=2) THEN
14700bscore(depth)=tempscore(depth)
14710IF depth=1 THEN
14720FOR q=0TO63
14730bestpos(q)=quad(1,lev(1),q)
14740NEXT
14750ENDIF
14760ENDIF
14770ENDIF
14780ENDPROC
14790 
14800DEFPROCcheckifmove(piece,depth)
14810king(depth,1)=FALSE:pmove(depth)=FALSE
14820
14830IF FNrow(piece)-1 = FNrow(piece-7) AND d1(depth) THEN
14840IF quad(depth,1,piece-7)=0 THEN
14850IF quad(depth,1,piece)=1 AND (piece-7>-1 AND piece-7<8) THEN king(depth,1)=TRUE
14860score(depth)=.5
14870IF king(depth,1) THEN score(depth)+=.4
14880IF (depth AND 1)=0 THEN score(depth)=score(depth)*2
14890IF depth<level% OR depth=1 THEN
14900FOR q=0 TO 31
14910quad(depth+1,1,numsq(q))=quad(depth,1,numsq(q))
14920NEXT
14930quad(depth+1,1,piece-7)=quad(depth+1,1,piece)
14940quad(depth+1,1,piece)=0
14950IF king(depth,1) THEN quad(depth+1,1,piece-7)+=2
14960
14970
14980
14990IF depth<level% THEN score(depth)-=FNnextdepth(depth+1)
15000ENDIF
15010IF ((score(depth)>bscore(depth)) OR (score(depth)=bscore(depth) AND RND(2)=2)) AND depth=1 THEN
15020bscore(depth)=score(depth)
15030FOR q=0 TO 31
15040bestpos(numsq(q))=quad(depth+1,1,numsq(q))
15050NEXT
15060ENDIF
15070pjump(depth)=TRUE:pmove(depth)=TRUE
15080king(depth,1)=FALSE
15090ENDIF
15100ENDIF
15110:
15120IF FNrow(piece)-1 = FNrow(piece-9) AND d1(depth) THEN
15130IF quad(depth,1,piece-9)=0 THEN
15140IF quad(depth,1,piece)=1 AND (piece-9>-1 AND piece-9<8) THEN king(depth,1)=TRUE
15150score(depth)=.5
15160IF king(depth,1) THEN score(depth)+=.4
15170IF (depth AND 1)=0 THEN score(depth)=score(depth)*2
15180IF depth<level% OR depth=1 THEN
15190FOR q=0 TO 31
15200quad(depth+1,1,numsq(q))=quad(depth,1,numsq(q))
15210NEXT
15220quad(depth+1,1,piece-9)=quad(depth+1,1,piece)
15230quad(depth+1,1,piece)=0
15240IF king(depth,1) THEN quad(depth+1,1,piece-9)+=2
15250IF depth<level% THEN score(depth)-=FNnextdepth(depth+1)
15260ENDIF
15270IF ((score(depth)>bscore(depth)) OR (score(depth)=bscore(depth) AND RND(2)=2)) AND depth=1 THEN
15280bscore(depth)=score(depth)
15290FOR q=0 TO 31
15300bestpos(numsq(q))=quad(depth+1,1,numsq(q))
15310NEXT
15320ENDIF
15330pjump(depth)=TRUE:pmove(depth)=TRUE
15340king(depth,1)=FALSE
15350ENDIF
15360ENDIF
15370:
15380IF FNrow(piece)+1 = FNrow(piece+7) AND d2(depth) THEN
15390IF quad(depth,1,piece+7)=0 THEN
15400IF quad(depth,1,piece)=1 AND (piece+7>55 AND piece+7<64) THEN king(depth,1)=TRUE
15410score(depth)=.5
15420IF king(depth,1) THEN score(depth)+=.4
15430IF (depth AND 1)=0 THEN score(depth)=score(depth)*2
15440IF depth<level% OR depth=1 THEN
15450FOR q=0 TO 31
15460quad(depth+1,1,numsq(q))=quad(depth,1,numsq(q))
15470NEXT
15480quad(depth+1,1,piece+7)=quad(depth+1,1,piece)
15490quad(depth+1,1,piece)=0
15500IF king(depth,1) THEN quad(depth+1,1,piece+7)+=2
15510IF depth<level% THEN score(depth)-=FNnextdepth(depth+1)
15520ENDIF
15530IF ((score(depth)>bscore(depth)) OR (score(depth)=bscore(depth) AND RND(2)=2)) AND depth=1 THEN
15540bscore(depth)=score(depth)
15550FOR q=0 TO 31
15560bestpos(numsq(q))=quad(depth+1,1,numsq(q))
15570NEXT
15580ENDIF
15590pjump(depth)=TRUE:pmove(depth)=TRUE
15600king(depth,1)=FALSE
15610ENDIF
15620ENDIF
15630:
15640IF FNrow(piece)+1 = FNrow(piece+9) AND d2(depth) THEN
15650IF quad(depth,1,piece+9)=0 THEN
15660IF quad(depth,1,piece)=1 AND (piece+9>55 AND piece+9<64) THEN king(depth,1)=TRUE
15670score(depth)=.5
15680IF king(depth,1) THEN score(depth)+=.4
15690IF (depth AND 1)=0 THEN score(depth)=score(depth)*2
15700IF depth<level% OR depth=1 THEN
15710FOR q=0 TO 31
15720quad(depth+1,1,numsq(q))=quad(depth,1,numsq(q))
15730NEXT
15740quad(depth+1,1,piece+9)=quad(depth+1,1,piece)
15750quad(depth+1,1,piece)=0
15760IF king(depth,1) THEN quad(depth+1,1,piece+9)+=2
15770IF depth<level% THEN score(depth)-=FNnextdepth(depth+1)
15780ENDIF
15790IF ((score(depth)>bscore(depth)) OR (score(depth)=bscore(depth) AND RND(2)=2)) AND depth=1 THEN
15800bscore(depth)=score(depth)
15810FOR q=0 TO 31
15820bestpos(numsq(q))=quad(depth+1,1,numsq(q))
15830NEXT
15840ENDIF
15850pjump(depth)=TRUE:pmove(depth)=TRUE
15860king(depth,1)=FALSE
15870ENDIF
15880ENDIF
15890
15900
15910
15920
15930
15940
15950
15960
15970
15980ENDPROC
15990
16000DEFFNcopp(depth,pc)
16010dOgo=0
16020IF (depth AND 1)=0 THEN dOgo=Go
16030IF dOgo=0 AND Go=2 THEN dOgo=1
16040IF dOgo=0 AND Go=1 THEN dOgo=2
16050IF quad(depth,lev(depth),pc)=dOgo OR quad(depth,lev(depth),pc)=dOgo+2 THEN :=TRUE
16060=FALSE
16070
16080DEFPROCcompgo
16090bestpos()=0
16100incomp=TRUE
16110PROCgreymenu(0,TRUE,TRUE)
16120PROCsetgoicon(TRUE):PROCpoll:IF finished% PROCend
16130IF incomp=FALSE THEN ENDPROC
16140bestscore=-500:bestpos2()=0
16150FORq=0TO63:quad(1,1,q)=square(q):NEXT
16160depth=1:hff=-1
16170scorenohuff=FNnextdepth(depth)
16180IF incomp=FALSE THEN PROCsetgotext:PROCungreymenu(TRUE,TRUE,TRUE):ENDPROC
16190IF scorenohuff>-250 THEN bestscore=scorenohuff:bestpos2()=bestpos()
16200IF phuff<>FALSE THEN
16210FOR h=0 TO phuff-1
16220FORq=0TO63:quad(1,1,q)=square(q):NEXT
16230quad(1,1,huff(h))=0
16240depth=1
16250thisscore=FNnextdepth(depth)+1
16260IF incomp=FALSE THEN h=phuff-1
16270IF thisscore>bestscore THEN bestscore=thisscore:bestpos2()=bestpos():hff=h
16280NEXT
16290ENDIF
16300IF incomp=FALSE THEN PROCsetgotext:PROCungreymenu(TRUE,TRUE,TRUE):ENDPROC
16310IF hff<>-1 THEN found=huff(hff):PROClightningbolt(huff(hff))
16320PROCsetgoicon(FALSE)
16330IF bestscore<-250 THEN PROCconcede:ENDPROC
16340PROCpoll:IF finished% PROCend
16350
16360PROCsetboard
16370PROCungreymenu(TRUE,TRUE,TRUE)
16380PROCcountmen:PROCcheckifwon
16390nphuff=FALSE
16400PROCjustmoved
16410incomp=FALSE
16420ENDPROC
16430 
16440DEFPROCsetboard
16450FORq=0TO63
16460IF q<8 AND bestpos2(q)=1 THEN bestpos2(q)+=2
16470IF q>55 AND bestpos2(q)=2 THEN bestpos2(q)+=2
16480IF square(q) <> bestpos2(q) THEN PROCsetpiece(q,bestpos2(q)):square(q)=bestpos2(q)
16490NEXT
16500ENDPROC
16510 
16520DEFPROCopensave
16530SYS"Wimp_CreateSubMenu",,block%!20,block%!24,block%!28
16540PROCalterIcon(save_handle%,10,"!"+filename$,0,1)
16550SYS"Wimp_SetCaretPosition",save_handle%,10,,,-1,LEN(FNgettext(save_handle%,10))
16560ENDPROC
16570
16580DEFPROCopenplayers
16590SYS"Wimp_CreateSubMenu",,block%!20,block%!24,block%!28
16600IF Plyr1=0 THEN P1$="User" ELSE P1$="Archie"
16610IF Plyr2=0 THEN P2$="User" ELSE P2$="Archie"
16620PROCalterIcon(players_handle%,3,"#"+P1$,0,1)
16630PROCalterIcon(players_handle%,7,"#"+P2$,0,1)
16640PROCalterIcon(players_handle%,18,"#"+STR$level%,0,1)
16650levelp%=level%
16660Plyr1p=Plyr1
16670Plyr2p=Plyr2
16680ENDPROC

�><Draughts$Dir>.!RunImage
5� �error(�$+" (internal error code "+(Þ)+")",�)
	�init
(3� �error(�$+" (internal error code "+Þ+")",�)
2mask%=0
<�
F	�poll
P� playing% � �checkifwon
Z!� playing% � Plyr1=1 � Go=1 �
d�compgo
n�setgoicon(�)
x�
�	�poll
�� playing% � �checkifwon
�!� playing% � Plyr2=1 � Go=2 �
��compgo
��setgoicon(�)
��
�� finished%
� 
�	��end
�-ș"Wimp_CloseDown",task_handle%,&4B534154
��
� 
�
��poll
(ș"Wimp_Poll",mask%,block% � reason%
Ȏ reason% �

� 2:�open
"� 3:�close
,,� 6:�click(block%!8,block%!12,block%!16)
6� 7:�dragdone
@/� 8:�keypressed(!block%,block%!4,block%!24)
J� 9:�decodemenu
T� 17,18:�message
^�
h�
r�
| 
���error(err$,fatal%)
�ș"Wimp_DragBox",,0
�
!block%=�
�$(block%+4)=err$
�,ș"Wimp_ReportError",block%,1,"Draughts"
�8� fatal% � ș"Wimp_CloseDown",task_handle%,&4B534154
��
� 
�
��init
�@ș"Wimp_Initialise",200,&4B534154,"Draughts" � ,task_handle%
�� block% 5500,block2% 1024
�� main2% 4500,main3% 5500
�L� ind1% 49,ind2% 49,ind3% 350,ind4% 0,ind5% 30,ind6% 260,ind7% 0,ind8% 0
� pane% 920
� pixel 16:?pixel=0
�p=1�16:pixel?p=15:�
&&ș"Wimp_SlotSize",-1,-1 � slotsize
0�setupvarsndims
:grblacked=-1
Ddimension=0:�vars3d
Nsprites%=(�+1)+(8192)
X"ȕ (sprites% � 4)<> sprites%/4
bsprites%+=1
l�
v�loadsprites
�5ș"Wimp_OpenTemplate",,"<Draughts$Dir>.Templates"
�>ș"Wimp_LoadTemplate",,main2%,ind1%,ind1%+49,-1,"main2D",0
�main2%!64=sprites%
�>ș"Wimp_LoadTemplate",,main3%,ind2%,ind2%+49,-1,"main3D",0
�main3%!64=sprites%
�0ș"Wimp_CreateWindow",,main3% � main_handle%
�=ș"Wimp_LoadTemplate",,block%,ind3%,ind3%+350,-1,"info",0
�block%!64=sprites%
�0ș"Wimp_CreateWindow",,block% � info_handle%
�?ș"Wimp_LoadTemplate",,block%,ind4%,ind4%+0,-1,"stepthru",0
�block%!64=sprites%
�4ș"Wimp_CreateWindow",,block% � stepthru_handle%
�?ș"Wimp_LoadTemplate",,block%,ind5%,ind5%+30,-1,"players",0
block%!64=sprites%
3ș"Wimp_CreateWindow",,block% � players_handle%
?È™"Wimp_LoadTemplate",,block%,ind6%,ind6%+260,-1,"saveas",0
 0ș"Wimp_CreateWindow",,block% � save_handle%
*?È™"Wimp_LoadTemplate",,block%,ind8%,ind8%+0,-1,"graphics",0
44ș"Wimp_CreateWindow",,block% � graphics_handle%
>:È™"Wimp_LoadTemplate",,pane%,ind7%,ind7%+0,-1,"pane",0
HÈ™"Wimp_CloseTemplate"
Rfilename$="DrghtsGame"
\�setupboarddata
f�findgraphics
p�setupmenus
z�loadfile_startedwith
�$!block%=-1:block%!4=0:block%!8=0
�-block%!12=84:block%!16=68:block%!20=&3002
�$(block%+24)="!Draughts"
�*ș"Wimp_CreateIcon",,block% � iconbar%
��
� 
���setupboarddata
�fnumsq()=1,3,5,7,8,10,12,14,17,19,21,23,24,26,28,30,33,35,37,39,40,42,44,46,49,51,53,55,56,58,60,62
�!block%=main_handle%
�� ic=0 � 31
�icn=numsq(ic)
�block%!4=icn
�!ș"Wimp_GetIconState",,block%
(xcoord(icn)=(block%!8 + block%!16)/2
yrow=(icn � 8)+1
ycoord(yrow)=block%!12
$sqsizes(0,icn)=block%!8
.sqsizes(1,icn)=block%!12-4
8sqsizes(2,icn)=block%!16
Bsqsizes(3,icn)=block%!20
L�
V�
` 
j��loadsprites
t S%=�"<Draughts$Dir>.Sprites"
~spl=�#S%+16
��#S%
�!�slotsize(slotsize+spl+16384)
�� nslot<(slotsize+spl) �
�c�error("Insufficient memory to load application Sprites file - need approximately 20k.",�):�end
��
�slotsize+=spl+16384
�!block%=spl:block%!4=0
� sprites%!8=16:sprites%!12=16
�-� **** SYS"OS_SpriteOp",265,sprites% ****
�9ș"OS_SpriteOp",266,sprites%,"<Draughts$Dir>.Sprites"
��
� 
��findgraphics

Mș"OS_GBPB",9,"<Draughts$Dir>.Graphics",block%,256,0,8192,0 � ,,,ngrfiles
offset=0
� f=1� ngrfiles
(	f$=""
2�
<f$+=�(block%?offset)
F
offset+=1
P� block%?offset =0
Z
offset+=1
dgraphic$(f)=f$
n�
xpane%!44=-(56*ngrfiles)
� � ngrfiles<3 � pane%!44=-156
�/ș"Wimp_CreateWindow",,pane% � pane_handle%
�� f=1� ngrfiles
�4�alterIcon(pane_handle%,f-1,"#"+graphic$(f),0,1)
��
��
� 
���loadfile_startedwith
�ș"OS_GetEnv" � env$
�+env$=�env$,�env$,"""",�env$,"""")+1)+1)
�ȕ �env$,1)=" "
�env$=�env$,2)
��
firstload=�
�load(env$)
firstload=�
"�
, 
6��store
@� s=0�31
J'store?((pos*44)+s)=square(numsq(s))
T�
^� h=0 � 10
h!store?((pos*44)+h+32)=huff(h)
r�
|store?((pos*44)+43)=phuff
�
pos+=1
��
� 
���restoreboard(rpos)
�� s=0�31
�_� square(numsq(s))<>store?((rpos*44)+s) � indim=� � �setpiece(numsq(s),store?((rpos*44)+s))
�(square(numsq(s))=store?((rpos*44)+s)
��
�
�countmen
��
� 
���restore(rpos)
�ș"Hourglass_On"
pos=rpos+1
�restoreboard(rpos)
� h=0 � 10
&"huff(h)=store?((rpos*44)+32+h)
0�
:phuff=store?((rpos*44)+43)
D)� (pos � 1) � Go=1:Ogo=2 � Go=2:Ogo=1
N�setgotext
X�checkifhuff
b�ungreymenu(�,�,�)
lÈ™"Hourglass_Off"
v�
� 
���setgotext
��setgoicon(�)
�$� Go=1 � Go$=Plyr1$ � Go$=Plyr2$
�2� �Go$,1)="s" � Go$+="' turn" � Go$+="'s turn"
�3�alterIcon(main_handle%,Gotexticon,"!"+Go$,0,1)
��
� 
���countmen
�m1=0:m2=0:k3=0:k4=0
�� s=0 � 63
�Ȏ square(s) �
�
� 1:m1+=1

� 2:m2+=1

� 3:k3+=1

� 4:k4+=1
 �
*�
40�alterIcon(main_handle%,m1_icon,"#"+�m1,0,1)
>0�alterIcon(main_handle%,m2_icon,"#"+�m2,0,1)
H0�alterIcon(main_handle%,k3_icon,"#"+�k3,0,1)
R0�alterIcon(main_handle%,k4_icon,"#"+�k4,0,1)
\�
f 
p��setpiece(piecen,piece)
z� dimension=2 �
�<�alterIcon(main_handle%,piecen,"#square"+�piece+"9",0,1)
��
�.�alterIcon(main_handle%,piecen+65,"#",0,1)
�row=�row(piecen)
�+!block%=main_handle%:block%!4=piecen+65
�!ș"Wimp_GetIconState",,block%
�ș"Wimp_DeleteIcon",,block%
�piecegn=(piece*10)+row
�grx=grsizes(0,piecegn)
�gry=grsizes(1,piecegn)
�block%!4=main_handle%
�#block%!8=xcoord(piecen)-(grx/2)
�block%!12=ycoord(row)+4
	block%!16=block%!8+grx
	block%!20=block%!12+gry
	block%!24=&301A
	$"$(block%+28)="square"+�piecegn
	.!È™"Wimp_CreateIcon",,block%+4
	8LÈ™"Wimp_ForceRedraw",main_handle%,block%!8,block%!12,block%!16,block%!20
	B�
	L�
	V 
	`!��setpieceflags(piecen,flags)
	j.�alterIcon(main_handle%,piecen,"",flags,1)
	t�
	~ 
	���load(loadname$)
	�inload=�
	�ș"Hourglass_On"
	�A%=�loadname$
	�dimension=�#A%
	�GoI=�#A%
	�Plyr1=�#A%
	�Plyr2=�#A%
	�level%=�#A%
	�grld$=""
	�
� g=0 � 9
	�grld$+=�(�#A%)
�

g=�grld$,".")
� g>0 � grld$=�grld$,g-1)
pos=�#A%
(� p=0 � (pos*44)-1
2store?p=�#A%
<�
F�#A%
P�setgraphics(grld$)
Z2�alterIcon(players_handle%,18,"#"+�level%,0,1)
dU� instep=� � spos=pos-1:�click(4,stepthru_handle%,4):�click(4,stepthru_handle%,2)
nF� firstload=� � bdimen=dimension:dimension=0:�setdimension(bdimen)
x
� GoI>2 �
�Go=GoI-2
�� Go=1 � Ogo=2 � Ogo=1
��concede
��
�
Go=GoI
�� Go=1 � Ogo=2 � Ogo=1
��
�U� firstload=� � filename$=loadname$:�alterIcon(save_handle%,10,"!"+filename$,0,1)
�ș"Hourglass_Off"
�inload=�
��
� 
���setdimension(newdimens)
� dimension=newdimens � �
8!block%=main_handle%:È™"Wimp_GetWindowState",,block%
infront=block%!28
"dimension=newdimens
,!block%=main_handle%
6!È™"Wimp_DeleteWindow",,block%
@� dimension=2 �
J0ș"Wimp_CreateWindow",,main2% � main_handle%
T�vars2d
^dimenm!28=1:dimenm!52=&80
h�
r0ș"Wimp_CreateWindow",,main3% � main_handle%
|�vars3d
�dimenm!28=0:dimenm!52=&81
��
�indim=�
��restore(pos-1)
�indim=�
�1� Plyr1=0 � MPlyr1$="User" � MPlyr1$="Archie"
�1� Plyr2=0 � MPlyr2$="User" � MPlyr2$="Archie"
�5�alterIcon(main_handle%,mplayer1,"#"+MPlyr1$,0,1)
�1�alterIcon(players_handle%,3,"#"+MPlyr1$,0,1)
�5�alterIcon(main_handle%,mplayer2,"#"+MPlyr2$,0,1)
�1�alterIcon(players_handle%,7,"#"+MPlyr2$,0,1)
�+� First<>-1 � �setpieceflags(First,red)
�� nint>0 �
� i=1�nint
 �setpieceflags(int(i),green)
�
&�
0�setplyrnames
:�countmen:�checkifwon
D� conceded �concede
N� mainopen �
X!block%=main_handle%
b#È™"Wimp_GetWindowState",,block%
lblock%!28=infront
vÈ™"Wimp_OpenWindow",,block%
��
��
� 
���openwindow(handle%)
�'� handle%=main_handle% � mainopen=�
�!block%=handle%
�#ș"Wimp_GetWindowState",,block%
�ș"Wimp_OpenWindow",,block%
��
� 
���setgoicon(thinking)
�<� playing%=� � �alterIcon(main_handle%,goicon,"#",0,1):�
�� thinking �

 � Go=1 � Plyr1=0 � ic$="cm3"

 � Go=1 � Plyr1=1 � ic$="cm1"

 � Go=2 � Plyr2=0 � ic$="cm3"

  � Go=2 � Plyr2=1 � ic$="cm1"

*�

4� thinking=� �

> � Go=1 � Plyr1=0 � ic$="cm4"

H � Go=1 � Plyr1=1 � ic$="cm2"

R � Go=2 � Plyr2=0 � ic$="cm4"

\ � Go=2 � Plyr2=1 � ic$="cm2"

f�

p/�alterIcon(main_handle%,goicon,"#"+ic$,0,1)

z�

� 

���setgraphics(grld$)

�lgrld=0

�� g=1 � ngrfiles

�!� graphic$(g)=grld$ � lgrld=g

��

�� **** lgrld=2 ****

��panemove(lgrld)

�"�click(4,pane_handle%,lgrld-1)

� �click(4,graphics_handle%,6)

��

� 

���grclicked(icon%)
!� icon%>-1 � icon%<ngrfiles �
7�alterIcon(pane_handle%,grblacked-1,"",&17006039,1)
grblacked=icon%+1
$7�alterIcon(pane_handle%,grblacked-1,"",&70006039,1)
.�
8�
B 
L��panemove(whereto)
V!block%=pane_handle%
`#È™"Wimp_GetWindowState",,block%
jblock%!24=40*(whereto-1)
t,� inload=� � ș"Wimp_OpenWindow",,block%
~�
� 
� 
���justmoved
�$� Go=1 � Go=2:Ogo=1 � Go=1:Ogo=2
�huff()=nhuff()
�phuff=nphuff
�
�store
��checkifhuff
�� playing% � �setgotext
�First=-1:Second=-1
��
� 
"��click(button%,window%,icon%)

(� button%=2 � �menucreate(window%):�
8� window%=-2 � button%=4 � �openwindow(main_handle%)
� window%=save_handle% �
(� icon%=0 � �startdrag
2� icon%=9 �
<� button%=1 � iconclicked=�
F$�save(�gettext(save_handle%,10))
Piconclicked=�
Z�
d�
n� window%=pane_handle% �
x�grclicked(icon%)
��
� � window%=graphics_handle% �
�� icon%=6 �
�'� grblacked<>loaded � firstload=� �
�lgrld=grblacked
�=�loadgraphics("<Draughts$Dir>.Graphics."+graphic$(lgrld))
��
�1� button%=4 � !block%=graphics_handle%:�close
��
��
�� window%=players_handle% �
�� icon%=3 � icon%=7 �
�!� icon%=3 � Plyr1p=Plyr1p � 1
!� icon%=7 � Plyr2p=Plyr2p � 1
*� Plyr1p=0 � P1$="User" � P1$="Archie"
*� Plyr2p=0 � P2$="User" � P2$="Archie"
"� icon%=3 �
,-�alterIcon(players_handle%,3,"#"+P1$,0,1)
6�
@-�alterIcon(players_handle%,7,"#"+P2$,0,1)
J�
T�
^/� button%=1 � icon%=19 � icon%=20:button%=4
h/� button%=1 � icon%=20 � icon%=19:button%=4
rW� icon%=19 � levelp%>1 � levelp%-=1:�alterIcon(players_handle%,18,"#"+�levelp%,0,1)
|X� icon%=20 � levelp%<ld � levelp%+=1:�alterIcon(players_handle%,18,"#"+�levelp%,0,1)
�� icon%=26 �
�level%=levelp%
�Plyr1=Plyr1p:Plyr2=Plyr2p
�� Go=1 � Plyr1=0 � incomp=�
�� Go=2 � Plyr2=0 � incomp=�
�)� Plyr1=0 � P1$="User" � P1$="Archie"
�)� Plyr2=0 � P2$="User" � P2$="Archie"
�1�alterIcon(main_handle%,mplayer1,"#"+P1$,0,1)
�1�alterIcon(main_handle%,mplayer2,"#"+P2$,0,1)
�)� button%=4 � ș"Wimp_CreateMenu",,-1
��
��
�+� window%=stepthru_handle% � icon% <5 �
�stepthru(icon%)
�
?� window%=main_handle% � playing%=� � incomp=� � instep=� �
&ok=�
0#� dimension=2 � icon%<64 � ok=�
:$� dimension=3 � icon%<129 � ok=�
D
� ok �
N!� dimension=3 � �findoutwhich
X.� icon%<64 � icon%>-1 � �boardclick(icon%)
b�
l�
v�
� 
���setupmenus
�M� mainm 520,barm 520,miscm 520,dimenm 520,huffm 520,canchm 520,cancfm 520
�menu=mainm
�M$menu="Draughts":menu!12=&70207:menu!16=204:menu!20=44:menu!24=0:menu+=28
�;menu!0=0:menu!4=miscm:menu!8=&7000021:$(menu+12)="Misc"
�Cmenu!24=0:menu!28=-1:menu!32=&7000021:$(menu+36)="Step thru..."
�Kmenu!48=8:menu!52=players_handle%:menu!56=&7000021:$(menu+60)="Players"
�Bmenu!72=0:menu!76=-1:menu!80=&7000021:$(menu+84)="Graphics..."
�Cmenu!96=2:menu!100=dimenm:menu!104=&7000021:$(menu+108)="Board"
�Bmenu!120=0:menu!124=huffm:menu!128=&7000021:$(menu+132)="Huff"
�Bmenu!144=0:menu!148=-1:menu!152=&7000021:$(menu+156)="Concede"
�Emenu!168=&80:menu!172=-1:menu!176=&7000021:$(menu+180)="New game"

menu=barm
M$menu="Draughts":menu!12=&70207:menu!16=120:menu!20=44:menu!24=0:menu+=28
Bmenu!0=0:menu!4=info_handle%:menu!8=&7000021:$(menu+12)="Info"
 Emenu!24=8:menu!28=save_handle%:menu!32=&7000021:$(menu+36)="Save"
*=menu!48=&80:menu!52=-1:menu!56=&7000021:$(menu+60)="Quit"
4menu=miscm
>H$menu="Misc":menu!12=&70207:menu!16=96:menu!20=44:menu!24=0:menu+=28
HBmenu!0=0:menu!4=info_handle%:menu!8=&7000021:$(menu+12)="Info"
RGmenu!24=&88:menu!28=save_handle%:menu!32=&7000021:$(menu+36)="Save"
\menu=dimenm
fJ$menu="Board":menu!12=&70207:menu!16=208:menu!20=44:menu!24=0:menu+=28
p@menu!0=0:menu!4=-1:menu!8=&7000021:$(menu+12)="2 dimensions"
zEmenu!24=&80:menu!28=-1:menu!32=&7000021:$(menu+36)="3 dimensions"
�menu=huffm
�I$menu="Huff":menu!12=&70207:menu!16=100:menu!20=44:menu!24=0:menu+=28
�8menu!0=0:menu!4=-1:menu!8=&7000021:$(menu+12)="Huff"
�>menu!24=&80:menu!28=-1:menu!32=&7000021:$(menu+36)="Force"
�menu=canchm
�I$menu="Huff":menu!12=&70207:menu!16=112:menu!20=44:menu!24=0:menu+=28
�<menu!0=&80:menu!4=-1:menu!8=&7000021:$(menu+12)="Cancel"
�menu=cancfm
�J$menu="Force":menu!12=&70207:menu!16=112:menu!20=44:menu!24=0:menu+=28
�<menu!0=&80:menu!4=-1:menu!8=&7000021:$(menu+12)="Cancel"
��
� 
���menucreate(window%)
mencr%=window%
+� mencr%<>-2 � mencr%<>main_handle% � �
;� mencr%=-2 � È™"Wimp_CreateMenu",,barm,block%!0-64,228
$N� mencr%=main_handle% � ș"Wimp_CreateMenu",,mainm,block%!0-64,block%!4+16
.�
8 
Bݤgettext(window%,icon%)
LC!block2%=window%:block2%!4=icon%:È™"Wimp_GetIconState",,block2%
V@� (block2%!24 � 256)=256 � :=$(block2%!28) � :=$(block2%+28)
` 
j��slotsize(newslot)
t(ș"Wimp_SlotSize",newslot,-1 � nslot
~�
� 
���stepthru(icon%)
�+� icon%=0 � steppos=0:�restore(steppos)
�.� icon%=4 � steppos=spos:�restore(steppos)
�8� icon%=1 � steppos>0 � steppos-=1:�restore(steppos)
�;� icon%=3 � steppos<spos � steppos+=1:�restore(steppos)
�� icon%=2 �
�#!block%=stepthru_handle%:�close
�instep=�:playing%=�
�conceded=�
�"�restore(steppos):�checkifhuff
��
�

 
��findoutwhich
,� icon%=64 � �clicksquare � �findoutreal
(,� icon%>64 � �clicksquare � �findoutreal
2� icon%>64 � icon%-=65
<�
F 
Pݤclicksquare
Z#È™"Wimp_GetPointerInfo",,block%
dmxco=!block%:myco=block%!4
n)ș"OS_ReadModeVariable",-1,3 � ,,coll
x!� �mxco,myco)=�modecol1 � :=�
�!� �mxco,myco)=�modecol2 � :=�
�!� �mxco,myco)=�modecol3 � :=�
�=�
� 
�ݤmodecol1
�� coll=1 � :=1
�� coll=3 � :=3
�� coll=15 � :=7
�� coll=63 � :=0
�=�
� 
�ݤmodecol2
�� coll=1 � :=1
� coll=3 � :=3
� coll=15 � :=11
� coll=63 � :=3
"=�
, 
6ݤmodecol3
@� coll=1 � :=1
J� coll=3 � :=2
T� coll=15 � :=10
^� coll=63 � :=12
h=�
r 
|��findoutreal
�#ș"Wimp_GetPointerInfo",,block%
�mxco=block%!0:myco=block%!4
�!block%=main_handle%
�#ș"Wimp_GetWindowState",,block%
�%scrllx=block%!20:scrlly=block%!24
�mxco=mxco+(scrllx-block%!4)
� myco=myco+(scrlly-block%!16)
�found=0:counter=0
��
�counter+=1
�{� mxco>sqsizes(0,counter) � mxco<sqsizes(2,counter) � myco>sqsizes(1,counter) � myco<sqsizes(3,counter) � found=counter
�� found<>0 � counter=63
�� found<>0 � icon%=found
� icon%=64 � icon%=0
� icon%>64 � icon%-=65
�
& 
0��boardclick(icon%)
:-� button%=1 � First<>-1 � �inter(icon%):�
D� button%=1 � �
NP� icon%=First � First<>-1 � First=-1:�setpieceflags(icon%,black):�clearint:�
Xb� First=-1 � (square(icon%)=Go � square(icon%)=Go+2) � First=icon%:�setpieceflags(icon%,red):�
b#� First<>-1 � square(icon%)=0 �
lSecond=icon%
v� �legal � �move
��
��
� 
���inter(icon%)
�int(0)=First:lint=int(nint)
�+� nint>0 � icon%=lint � �unint(icon%):�
�	set=�
�!� square(First)>2 � d1=�:d2=�
�!� square(First)=1 � d1=�:d2=�
�!� square(First)=2 � d1=�:d2=�
�� square(icon%)=0 �
�9� icon%=lint-14 � �row(icon%)+2 = �row(lint) � d1=� �
�� �opp(lint-7) � set=�
�
9� icon%=lint-18 � �row(icon%)+2 = �row(lint) � d1=� �
� �opp(lint-9) � set=�
 �
*9� icon%=lint+14 � �row(icon%)-2 = �row(lint) � d2=� �
4� �opp(lint+7) � set=�
>�
H9� icon%=lint+18 � �row(icon%)-2 = �row(lint) � d2=� �
R� �opp(lint+9) � set=�
\�
f�
p� set �
z�setpieceflags(icon%,green)
�nint+=1
�int(nint)=icon%
��
��
� 
���clearint
�� nint>0 �
�� i=1 � nint
� �setpieceflags(int(i),black)
��
��
�nint=0:int()=0
��
 
��unint(icon%)
�setpieceflags(icon%,black)
$int(nint)=0
.nint-=1
8�
B 
Lݤlegal
V!� square(First)>2 � d1=�:d2=�
`!� square(First)=1 � d1=�:d2=�
j!� square(First)=2 � d1=�:d2=�
tok=�
~� nint=0 �
�� inforce=� �
�
�B� Second-First=-7 � d1=� � �row(Second)+1 = �row(First) � ok=�
�B� Second-First=-9 � d1=� � �row(Second)+1 = �row(First) � ok=�
�A� Second-First=7 � d2=� � �row(Second)-1 = �row(First) � ok=�
�A� Second-First=9 � d2=� � �row(Second)-1 = �row(First) � ok=�
��
�
�:
�i� Second-First=-14 � d1=� � �row(Second)+2 = �row(First) � �opp(Second+7) � �deleteopp(Second+7):ok=�
�i� Second-First=-18 � d1=� � �row(Second)+2 = �row(First) � �opp(Second+9) � �deleteopp(Second+9):ok=�
�h� Second-First=14 � d2=� � �row(Second)-2 = �row(First) � �opp(Second-7) � �deleteopp(Second-7):ok=�
h� Second-First=18 � d2=� � �row(Second)-2 = �row(First) � �opp(Second-9) � �deleteopp(Second-9):ok=�

�
� ok=� � :=�
� nint=0 � :=0
(ok=�
2q� Second-int(nint)=-14 � d1=� � �row(Second)+2 = �row(int(nint)) � �opp(Second+7) � �deleteopp(Second+7):ok=�
<q� Second-int(nint)=-18 � d1=� � �row(Second)+2 = �row(int(nint)) � �opp(Second+9) � �deleteopp(Second+9):ok=�
Fp� Second-int(nint)=14 � d2=� � �row(Second)-2 = �row(int(nint)) � �opp(Second-7) � �deleteopp(Second-7):ok=�
Pp� Second-int(nint)=18 � d2=� � �row(Second)-2 = �row(int(nint)) � �opp(Second-9) � �deleteopp(Second-9):ok=�
Z� ok=� � :=0
d� i=1 � nint
n7� int(i)-int(i-1)=-14 � d1=� � �deleteopp(int(i)+7)
x7� int(i)-int(i-1)=-18 � d1=� � �deleteopp(int(i)+9)
�6� int(i)-int(i-1)=14 � d2=� � �deleteopp(int(i)-7)
�6� int(i)-int(i-1)=18 � d2=� � �deleteopp(int(i)-9)
��
�
�clearint
�=�
� 
�ݤopp(opchk)
�� opchk<0 � opchk>63 � :=�
�3� square(opchk)=Ogo � square(opchk)=Ogo+2 � :=�
�=�
� 
���deleteopp(delcon)
�square(delcon)=0
� thicondone=� �
�setgoicon(�):�poll
� finished% � �end
"thicondone=�
,�
6nphuff=�
@�setpiece(delcon,0)
J�
T 
^
��move
h� thicondone=� �
r�setgoicon(�):�poll
|� finished% � �end
��
�'� Go=1 � Second<8 � square(First)=3
�(� Go=2 � Second>55 � square(First)=4
� square(Second)=square(First)
�square(First)=0
��setpiece(First,0)
��setpieceflags(First,black)
�$�setpiece(Second,square(Second))
� �setpieceflags(Second,black)
�thicondone=�
�� h=0�nphuff-1
�&� First=nhuff(h) � nhuff(h)=Second
��

�countmen
�justmoved
� inforce � fdone=�
&�
0 
:��setupvarsndims
Dconceded=�
Nindim=�
Xincomp=�
biconclicked=�
lphuff=0:nphuff=0
v
nint=0
�
hffd=�
�
inforce=�
�inhuff=�
�mainopen=�
�finished%=�
�instep=�
�thicondone=�
�Plyr1=0:Plyr2=0:level%=1
�pos=0:grld=0:playing%=�
�First=-1:Second=-1
�dimension=0
�"Go=1:Ogo=2:Plyr1$="":Plyr2$=""
�ld=5
� xcoord(63),ycoord(8)
(� square(63),graphic$(255),numsq(31)
@� store 16384,huff(11),grsizes(1,64),nhuff(11),sqsizes(3,63)
 
� int(12)
*G� quad(ld,12,63),bestpos(63),piece(ld),lev(ld),bscore(ld),score(ld)
4� bestpos2(63)
>A� d1(ld),d2(ld),king(ld,12),maxlev(ld),oldnj(ld,12),nj(ld,12)
H'� pjump(ld),tempscore(ld),pmove(ld)
Rloaded=0
\�
f 
p��vars3d
zblack=&77000038
�red=&B7000038
�green=&A7000038
�yellow=&97000038
�mplayer1=134:mplayer2=137
�pcname1=133:pcname2=136
�goicon=158
�m1_icon=150:m2_icon=151
�k3_icon=152:k4_icon=153
�Gotexticon=157
��
� 
���vars2d
�black=&7700303A
red=&B700303A
green=&A700303A
yellow=&9700303A
$mplayer1=71:mplayer2=73
.pcname1=68:pcname2=70
8
goicon=72
Bm1_icon=96:m2_icon=98
Lk3_icon=97:k4_icon=99
VGotexticon=95
`�
j 
t��checkifwon
~� m1=0 � k3=0 �
�playing%=�
�Q� �Plyr2$,1)="s" � won$="!"+Plyr2$+" have won!" � won$="!"+Plyr2$+" has won!"
�0�alterIcon(main_handle%,Gotexticon,won$,0,1)
��
�� m2=0 � k4=0 �
�playing%=�
�Q� �Plyr1$,1)="s" � won$="!"+Plyr1$+" have won!" � won$="!"+Plyr1$+" has won!"
�0�alterIcon(main_handle%,Gotexticon,won$,0,1)
��
�K� playing%=� � �greymenu(0,�,�):�alterIcon(main_handle%,goicon,"#",0,1)
��
� 
��greymenu(gr1,gr2,gr3)

� gr1 � mainm!60=&7400021
� gr2 � mainm!156=&7400021
� gr3 � mainm!180=&7400021
(�
2 
<$��keypressed(window%,icon%,key%)
F1� window%=save_handle% � icon%=10 � key%=13 �
P$�save(�gettext(save_handle%,10))
Z�
dÈ™"Wimp_ProcessKey",key%
n�
x�
� 
���decodemenu
�c=�
�
closeit=�
�*� mencr%=-2 � block%!0=2 � finished%=�
�� mencr%=main_handle% �
�� block%!0=1 �
�c=�
�
closeit=�
��greymenu(�,�,�)
�steppos=pos-1
�spos=pos-1
�instep=�
incomp=�
playing%=�:�setgoicon(�)
!�openwindow(stepthru_handle%)
"�
,*� c=0 � block%!0=3 � �opengraphics:c=�
6:� c=0 � block%!0=4 � block%!4=0 � �setdimension(2):c=�
@:� c=0 � block%!0=4 � block%!4=1 � �setdimension(3):c=�
JA� c=0 � block%!0=5 � block%!4=0 � phuff<>0 � �huff:hffd=�:c=�
TB� c=0 � block%!0=5 � block%!4=1 � phuff<>0 � �force:hffd=�:c=�
^%� c=0 � block%!0=6 � �concede:c=�
h%� c=0 � block%!0=7 � �newgame:c=�
r�
|� hffd � hffd=�:�
�#ș"Wimp_GetPointerInfo",,block%
�� block%!8=1 � closeit=� �
��menucreate(mencr%)
��
��
� 
�
��message
�Ȏ block%!16 �
�� 0:finished%=�
�� 2:�save(�tidy(block%+44))
�@� 3:� block%!12=0 � block%!40=&560 � �load(�tidy(block%+44))
�� &502:�help
�
� &400C0:
 C� (mencr%=main_handle% � block%!32=0 � block%!36=1) � �opensave
 +� (mencr%=-2 � block%!32=1) � �opensave
 8� (mencr%=main_handle% � block%!32=2) � �openplayers
 &�
 0�
 : 
 D��opengraphics
 N!block%=graphics_handle%
 X#È™"Wimp_GetWindowState",,block%
 b%xoffset=block%!4:yoffset=block%!8
 l!block%=pane_handle%
 v#È™"Wimp_GetWindowState",,block%
 �block%!4=xoffset+16
 �block%!8=yoffset+88
 �block%!12=block%!4+204
 �block%!16=block%!8+156
 �ș"Wimp_OpenWindow",,block%
 �!block%=graphics_handle%
 �#ș"Wimp_GetWindowState",,block%
 �block%!28=pane_handle%
 �ș"Wimp_OpenWindow",,block%
 ��grclicked(lgrld-1)
 ��panemove(lgrld)
 ��
 � 
!
��open
! � !block%=graphics_handle% �
!%xoffset=block%!4:yoffset=block%!8
! )xoffset2=block%!12:yoffset2=block%!16
!*!block%=pane_handle%
!4#È™"Wimp_GetWindowState",,block%
!>block%!4=xoffset+16
!Hblock%!8=yoffset+88
!Rblock%!12=block%!4+204
!\block%!16=block%!8+156
!fÈ™"Wimp_OpenWindow",,block%
!p!block%=graphics_handle%
!z#È™"Wimp_GetWindowState",,block%
!�%block%!4=xoffset:block%!8=yoffset
!�)block%!12=xoffset2:block%!16=yoffset2
!�block%!28=pane_handle%
!�ș"Wimp_OpenWindow",,block%
!��
!�ș"Wimp_OpenWindow",,block%
!��
!��
!� 
!���close
!�'� !block%=main_handle% � mainopen=�
!� � !block%=graphics_handle% �
!� ș"Wimp_CloseWindow",,block%
"!block%=pane_handle%
"�
" È™"Wimp_CloseWindow",,block%
"$�
". 
"8��setplyrnames
"B3�alterIcon(main_handle%,pcname1,"#"+Plyr1$,0,1)
"L3�alterIcon(main_handle%,pcname2,"#"+Plyr2$,0,1)
"V�
"` 
"jݤrow(rch)
"t� rch<0 � :=rch+100
"~rch=(rch � 8) +1
"�� rch>0 � rch<9 � :=rch
"�=(rch+100)
"� 
"�6� �alterIcon(whandle%,ihandle%,text$,flgs%,redraw)
"�Eblock%!0=whandle%:block%!4=ihandle%:ș"Wimp_GetIconState",,block%
"�� �text$,1)="!" �
"�!$block%!28=�text$,�(text$)-1)
"��
"�� �text$,1)="#" �
"�#$(block%+28)=�text$,�(text$)-1)
"�[� flgs%=0 � ș"Wimp_DeleteIcon",,block%:block%!4=whandle%:ș"Wimp_CreateIcon",,block%+4
"��
#� flgs%<>0 �
#
È™"Wimp_DeleteIcon",,block%
#block%!24=flgs%
#block%!4=whandle%
#(!È™"Wimp_CreateIcon",,block%+4
#2�
#<� redraw=0 � �
#FHÈ™"Wimp_ForceRedraw",whandle%,block%!8,block%!12,block%!16,block%!20
#P�
#Z 
#d��ungreymenu(gr1,gr2,gr3)
#n� gr1 � mainm!60=&7000021
#x� gr2 � mainm!156=&7000021
#�� gr3 � mainm!180=&7000021
#��
#� 
#� 
#�ݤtidy(loc%)
#�tidy$=""
#��
#�tidy$+=�(?loc%)
#�loc%+=1
#�� ?loc%<32
#�
=tidy$
#���loadgraphics(grfile$)
#�� grfile$="" � �
$A%=�grfile$
$present=A%
$'lensp=�#A%:lensp+=((lensp-69000)*9)
$"�#A%
$,�� present=0 � �error("Unable to load graphics file - perhaps the Draughts disc is not present",�):!block%=graphics_handle%:�close:�
$6È™"Hourglass_On"
$@� inload=� �
$J,È™"XOS_SpriteOp",256+25,sprites%,"board"
$T
�a=1�4
$^
�b=0�9
$h3ș"XOS_SpriteOp",256+25,sprites%,"square"+�a+�b
$r�:�
$|�
$��slotsize(slotsize+lensp)
$�� nslot<(slotsize+lensp) �
$�v�error("Unable to allocate sufficient memory for graphics file - approximately "+�(lensp � 1024)+"k is needed.",0)
$�#� inload=� � firstload=� � �end
$��
$�4� nslot<(slotsize+lensp) � �slotsize(slotsize):�
$�!sprites%+=lensp
$�(ș"OS_SpriteOp",267,sprites%,grfile$
$�1ș"OS_SpriteOp",256+13,sprites%,block%,256,17
$�Plyr1$=�tidy(block%)
$�1ș"OS_SpriteOp",256+13,sprites%,block%,256,18
$�Plyr2$=�tidy(block%)
$�5ș"OS_SpriteOp",256+26,sprites%,Plyr1$,"square10"
%5È™"OS_SpriteOp",256+26,sprites%,Plyr2$,"square20"
%Plyr1$=�Plyr1$,�(Plyr1$)-2)
%Plyr2$=�Plyr2$,�(Plyr2$)-2)
%&� a=1�4
%0<ș"OS_SpriteOp",256+40,sprites%,"square"+�a+"0" � ,,,w,h
%:� b=1�8
%DOgrsizes(0,(a*10)+b)=2*(w*((16+b)/24)):grsizes(1,(a*10)+b)=4*(h*((16+b)/24))
%NSș"OS_SpriteOp",256+15,sprites%,"square"+�a+�b,0,w*((16+b)/24),h*((16+b)/24),12
%X2ș"OS_SpriteOp",256+29,sprites%,"square"+�a+�b
%b2ș"OS_SpriteOp",256+60,sprites%,"square"+�a+�b
%l!block%=16+b:block%!4=16+b
%v 
%�block%!8=24:block%!12=24
%�@ș"OS_SpriteOp",256+52,sprites%,"square"+�a+"0",0,0,0,block%
%�2ș"OS_SpriteOp",256+61,sprites%,"square"+�a+�b
%��0
%�Gș"OS_SpriteOp",256+52,sprites%,"square"+�a+"0",0,0,&8,block%,pixel
%��
%��
%�%ș"OS_SpriteOp",256+60,sprites%,0
%�loaded=lgrld
%��setplyrnames
%�8bdimens=dimension:dimension=0:�setdimension(bdimens)
%�ș"Hourglass_Off"
%��
& 
&��startdrag
&!block%=save_handle%
& #È™"Wimp_GetWindowState",,block%
&*ysize%=block%!16-block%!8
&4x%=block%!4:y%=block%!8
&>block%!4=0
&H!È™"Wimp_GetIconState",,block%
&R
!block%=0
&\block%!4=5
&fblock%!8+=x%
&pblock%!12+=y%+ysize%
&zblock%!16+=x%
&�block%!20+=y%+ysize%
&�block%!24=0
&�block%!28=0
&�,ș"OS_ReadModeVariable",-1,4 � ,,xtentsh
&�,ș"OS_ReadModeVariable",-1,5 � ,,ytentsh
&�+ș"OS_ReadModeVariable",-1,11 � ,,xtent
&�+ș"OS_ReadModeVariable",-1,12 � ,,ytent
&�%block%!32=((xtent+1)*2^xtentsh)-1
&�%block%!36=((ytent+1)*2^ytentsh)-1
&�ș"Wimp_DragBox",,block%
&��
&� 
&���dragdone
'#È™"Wimp_GetPointerInfo",,block%
'!block%=60
'block%!20=block%!12
'$block%!12=0
'.block%!24=block%!16
'8block%!16=1
'Bblock%!28=!block%
'Lblock%!32=block%!4
'Vblock%!40=&560
'`4$(block%+44)=�lastbit(�gettext(save_handle%,10))
'j,È™"Wimp_SendMessage",17,block%,block%!20
't�
'~ 
'�ݤlastbit(lb$)
'�lbr$="":lbc=0
'��
'�
lbc+=1
'�lbr$=�lb$,lbc)
'�#� �lbr$,1)="." � �(lbr$)=�(lb$)
'�(� �lb$,lbc)="." � :=�lbr$,�(lbr$)-1)
'�	=lbr$
'� 
'���save(savename$)
'�Y� �savename$,".")<1 � �error("To save, drag the file icon to a directory viewer",�):�
'�ș"Hourglass_On"
(A%=�savename$
(
�#A%,dimension
(�#A%,Go
(�#A%,Plyr1
((�#A%,Plyr2
(2�#A%,level%
(<�#A%,graphic$(lgrld);
(F%�#A%,�10-�(graphic$(lgrld)),".");
(P�#A%,pos
(Z� p=0�(pos*44)-1
(d�#A%,store?p
(n�
(x�#A%
(� �"settype "+savename$+" 560"
(�ș"Hourglass_Off"
(�-� iconclicked=� � ș"Wimp_CreateMenu",,-1
(�filename$=savename$
(�1�alterIcon(save_handle%,10,"!"+filename$,0,1)
(��
(� 
(�
��concede
(�playing%=�
(�conceded=�
(��greymenu(0,�,�)
(�&� Go=1 � Gcn$=Plyr1$ � Gcn$=Plyr2$
(�9� �Gcn$,1)="s" � Gcn$+=" concede" � Gcn$+=" concedes"
)4�alterIcon(main_handle%,Gotexticon,"!"+Gcn$,0,1)
)+�alterIcon(main_handle%,goicon,"#",0,1)
)	Go+=2
)"�
), 
)6
��newgame
)@conceded=�
)JÈ™"Hourglass_On"
)Tincomp=�
)^7� instep � instep=�:!block%=stepthru_handle%:�close
)hplaying%=�
)r@�restore(0):ș"Wimp_ForceRedraw",main_handle%,0,-1024,1280,0
)|�ungreymenu(�,�,�)
)�ș"Hourglass_Off"
)��
)� 
)���checkifhuff
)�nhuff()=0:nphuff=0
)�� s=0 � 63
)�6� square(s)<>0 � (square(s)=Go � square(s)=Go+2) �
)�si=square(s)
)�� si=1 � d1=�:d2=�
)�� si=2 � d1=�:d2=�
)�� si>2 � d1=�:d2=�
)�'� (�row(s)-2 = �row(s-14)) � d1=� �
)�.� square(s-14)=0 � �opp(s-7) � �addhuff(s)
*�
*'� (�row(s)-2 = �row(s-18)) � d1=� �
*.� square(s-18)=0 � �opp(s-9) � �addhuff(s)
*&�
*0'� (�row(s)+2 = �row(s+14)) � d2=� �
*:.� square(s+14)=0 � �opp(s+7) � �addhuff(s)
*D�
*N'� (�row(s)+2 = �row(s+18)) � d2=� �
*X.� square(s+18)=0 � �opp(s+9) � �addhuff(s)
*b�
*l�
*v�
*��
*� 
*���addhuff(s)
*�
already=�
*�� h=0 � nphuff-1
*�� nhuff(h)=s � already=�
*��
*�� already � �
*�nhuff(nphuff)=s
*�
nphuff+=1
*��
*� 
*�
��huff
+inhuff=�
+setphuff=�
+!block%=graphics_handle%
+ 
�close
+*È™"Wimp_CreateMenu",,-1
+4
done=�
+>&� Go=1 � HGo$=Plyr2$ � HGo$=Plyr1$
+H9�alterIcon(main_handle%,Gotexticon,"!Huff "+HGo$,0,1)
+R� h=0�phuff-1
+\"�setpieceflags(huff(h),yellow)
+f�
+p6� First<>-1 � �setpieceflags(First,black):First=-1
+z
�clearint
+��
+�(ș"Wimp_Poll",mask%,block% � reason%
+�Ȏ reason% �
+�#� 2:ș"Wimp_OpenWindow",,block%
+�$� 3:ș"Wimp_CloseWindow",,block%
+�0� 6:�huffclick(block%!8,block%!12,block%!16)
+�� 9:�huffmenu
+�� 17,18:�huffmessage
+��
+�� finished% �end
+�
� done
+�� h=0 � phuff-1
+�!�setpieceflags(huff(h),black)
,�
,� setphuff � phuff=�
,�setgotext
,$
�countmen
,.�checkifhuff
,8inhuff=�
,B�
,L 
,V&��huffclick(button%,window%,icon%)
,`� button%=2 �
,j<� window%=-2 � ș"Wimp_CreateMenu",,barm,block%!0-64,228
,tP� window%=main_handle% � ș"Wimp_CreateMenu",,canchm,block%!0-64,block%!4-16
,~mencr%=window%
,��
,�� button% <> 4 � �
,�,� window%=-2 � �openwindow(main_handle%)
,�� window%=main_handle% �
,�ok=�
,�#� dimension=2 � icon%<64 � ok=�
,�$� dimension=3 � icon%<129 � ok=�
,�
� ok �
,�!� dimension=3 � �findoutwhich
,�� icon%<64 � icon%>0 �
,�found=-1
,�� h=0 � phuff-1
-#� icon%=huff(h) � found=huff(h)
-
�
-� found<>-1 �
-�lightningbolt(found)
-(square(found)=0
-2
done=�
-<setphuff=�
-F�
-P�
-Z�
-d�
-n�
-x 
-���huffmenu
-�$� mencr%=main_handle% � done=�:�
-�*� mencr%=-2 � block%!0=2 � finished%=�
-�#ș"Wimp_GetPointerInfo",,block%
-�<� block%!8=1 � ș"Wimp_CreateMenu",,barm,block%!0-64,228
-��
-� 
-���huffmessage
-�Ȏ block%!16 �
-�� 0:finished%=�
-�� 2:�save(�tidy(block%+44))
-�G� 3:� block%!12=0 � block%!40=&560 � �load(�tidy(block%+44)):done=�
-�� &502:�help
.
� &400C0:
.C� (mencr%=main_handle% � block%!32=0 � block%!36=1) � �opensave
.+� (mencr%=-2 � block%!32=1) � �opensave
."8� (mencr%=main_handle% � block%!32=2) � �openplayers
.,�
.6�
.@ 
.J��lightningbolt(licon%)
.T� dimension=3 � licon%+=65
.^!block%=main_handle%
.hblock%!4=licon%
.r!È™"Wimp_GetIconState",,block%
.|)exp=block%!8+((block%!16-block%!8)/2)
.�wyp=block%!12
.�!block%=main_handle%
.�block%!4=exp-36
.�block%!8=wyp+220
.�block%!12=block%!4+104
.�block%!16=block%!8+64
.�block%!20=-956276710
.�$(block%+24)="cloud"
.�&ș"Wimp_CreateIcon",,block% � cldh
.�(�alterIcon(main_handle%,cldh,"",0,1)
.��poll:� finished% �end
.�!block%=main_handle%
.�block%!4=exp-20
/block%!8=wyp+24
/block%!12=block%!4+32
/block%!16=block%!8+200
/&block%!20=-956276710
/0$(block%+24)="lightning"
/:&ș"Wimp_CreateIcon",,block% � lgth
/D(�alterIcon(main_handle%,lgth,"",0,1)
/N�poll:� finished% �end
/Xtime=�:���>time+10
/b�setpiece(found,0)
/l�poll:� finished% �end
/vtime=�:���>time+20
/�)�alterIcon(main_handle%,lgth,"#",0,1)
/�!block%=main_handle%
/�block%!4=lgth
/�ș"Wimp_DeleteIcon",,block%
/��poll:� finished% �end
/�time=�:���>time+10
/�)�alterIcon(main_handle%,cldh,"#",0,1)
/�!block%=main_handle%
/�block%!4=cldh
/�ș"Wimp_DeleteIcon",,block%
/��poll:� finished% �end
/��
/� 
0��force
0fpos=pos
0
inforce=�
0 !block%=graphics_handle%
0*
�close
04È™"Wimp_CreateMenu",,-1
0>fdone=�
0H&� Go=1 � FGo$=Plyr2$ � FGo$=Plyr1$
0R6� First<>-1 � �setpieceflags(First,black):First=-1
0\
�clearint
0fÈ™"Hourglass_On"
0p�restore(pos-2)
0zÈ™"Hourglass_Off"
0�:�alterIcon(main_handle%,Gotexticon,"!Force "+FGo$,0,1)
0��
0�(ș"Wimp_Poll",mask%,block% � reason%
0�Ȏ reason% �
0�#� 2:ș"Wimp_OpenWindow",,block%
0�$� 3:ș"Wimp_CloseWindow",,block%
0�1� 6:�forceclick(block%!8,block%!12,block%!16)
0�� 9:�forcemenu
0�� 17,18:�huffmessage
0��
0�� finished% �end
0�� fdone
0�
inforce=�
1�
1
1'��forceclick(button%,window%,icon%)
1$� button%=2 �
1.<� window%=-2 � ș"Wimp_CreateMenu",,barm,block%!0-64,228
18P� window%=main_handle% � ș"Wimp_CreateMenu",,cancfm,block%!0-64,block%!4-16
1Bmencr%=window%
1L�
1V� button%=2 � �
1`8� window%=-2 � button%=4 � �openwindow(main_handle%)
1j� window%=main_handle% �
1tok=�
1~#� dimension=2 � icon%<64 � ok=�
1�$� dimension=3 � icon%<129 � ok=�
1�
� ok �
1�!� dimension=3 � �findoutwhich
1�.� icon%<64 � icon%>-1 � �boardclick(icon%)
1��
1��
1��
1�
1���forcemenu
1�� mencr%=main_handle% �
1�fdone=�
1�ș"Hourglass_On"
2�restore(fpos-1)
2
È™"Hourglass_Off"
2�
2� mencr%=main_handle% � �
2(*� mencr%=-2 � block%!0=2 � finished%=�
22#È™"Wimp_GetPointerInfo",,block%
2<<� block%!8=1 � ș"Wimp_CreateMenu",,barm,block%!0-64,228
2F�
2P
2Z
��help
2d%window%=block%!32:icon%=block%!36
2n%block%!12=block%!8:block%!16=&503
2xtext%=block%+20
2�0$text%="This is the Draughts application.|M"
2�Ȏ window% �
2��� -2:$text%="Click Select over this icon to open the main playing window.|MClick Menu over this icon to open the icon bar menu for Draughts.|M"
2�� main_handle%:
2�<� (dimension=3 � icon%<129) � (dimension=2 � icon%<64) �
2�-text$="This is the main playing board.|M"
2�� inhuff=� �
2��� First=-1 � text$+="Click Select over the piece which you wish to move.  The square on which it rests will be highlighted red.  If you change your mind, click Select over the piece a second time.|M"
2��� First<>-1 � text$+="Click Select over the square to which you wish your piece to move.  If you wish to make multiple jumps, use Adjust to select the intermediate squares, which will be highlighted green.|M"
2��
2�text$+="Click Select over any one of the pieces on a yellow square - that piece will then be huffed.  To cancel the operation, use the main menu.|M"
2��
2�$text%=text$
3�
3� pane_handle%:
3K$text%="Click on the graphics file you wish to load, then select OK.|M"
3"� graphics_handle%
3,N� icon%>0 � $text%="Selecting OK will load the specified graphics file.|M"
36� save_handle%:
3@H� icon%=0 � $text%="Drag this icon to a directory viewer to save.|M"
3JJ� icon%=9 � $text%="Selecting OK will save the current game status.|M"
3TW� icon%=10 � $text%="Enter the filename in this icon, then press Return to save.|M"
3^� players_handle%:
3hȎ icon% �
3rV� 18:$text%="This icon shows the skill level of the computer player(s), if any.|M"
3|h� 19:$text%="Selecting this icon will decrease the skill level of the computer player(s), if any.|M"
3�h� 20:$text%="Selecting this icon will increase the skill level of the computer player(s), if any.|M"
3�� 3:
3�E� Plyr1=0 � P1$="user":P2$="computer" � P1$="computer":P2$="user"
3�Z$text%="Selecting this icon will change player one from "+P1$+" to "+P2$+" control.|M"
3�� 7:
3�E� Plyr2=0 � P1$="user":P2$="computer" � P1$="computer":P2$="user"
3�Z$text%="Selecting this icon will change player two from "+P1$+" to "+P2$+" control.|M"
3��
3�� stepthru_handle%:
3�Ȏ icon% �
3�D� 0:$text%="This icon resets the board to the first position.|M"
3�A� 1:$text%="This icon moves the game status back one move.|M"
3�Y� 2:$text%="This icon sets the current game status to that shown and resumes play.|M"
4D� 3:$text%="This icon moves the game status forward one move.|M"
4L� 4:$text%="This icon resets the board to the last position recorded.|M"
4�
4&�
40!block%=(�$text%+25)��3
4:+È™"Wimp_SendMessage",17,block%,block%!4
4D�
4N
4Xݤnextdepth(depth)
4bbscore(depth)=-100
4lpjump(depth)=�
4v� piece(depth)=0 � 31
4��poll:� finished% �end
4�#� incomp=� � piece(depth)=31:=0
4�score(depth)=0
4�d� quad(depth,1,numsq(piece(depth)))=�go(depth) � quad(depth,1,numsq(piece(depth)))=�kgo(depth) �
4�#�dir(depth,numsq(piece(depth)))
4�Hmaxlev(depth)=0:lev(depth)=1:�checkifjump(numsq(piece(depth)),depth)
4��
4��
4�
4�&� pjump(depth)=� � :=bscore(depth)
4�"� depth=level% � depth>2 � :=0
4�bscore(depth)=-100
4�� piece(depth)=0 � 31
5�poll:� finished% �end
5#� incomp=� � piece(depth)=31:=0
5score(depth)=0
5 d� quad(depth,1,numsq(piece(depth)))=�go(depth) � quad(depth,1,numsq(piece(depth)))=�kgo(depth) �
5*#�dir(depth,numsq(piece(depth)))
54+�checkifmove(numsq(piece(depth)),depth)
5>�
5H�
5R
5\� pjump(depth)=� � :=-500
5f=bscore(depth)
5p 
5z��dir(depth,pc)
5�	dGo=0
5�� (depth � 1)=1 � dGo=Go
5�� dGo=0 � Go=2 � dGo=1
5�� dGo=0 � Go=1 � dGo=2
5�!� quad(depth,1,pc)>2 � dGo+=2
5�%� dGo=1 � d1(depth)=�:d2(depth)=�
5�%� dGo=2 � d2(depth)=�:d1(depth)=�
5�%� dGo>2 � d1(depth)=�:d2(depth)=�
5��
5� 
5�ݤgo(depth)
5�	dGo=0
5�� (depth � 1)=1 � dGo=Go
6� dGo=0 � Go=2 � dGo=1
6� dGo=0 � Go=1 � dGo=2
6=dGo
6$
6.ݤkgo(depth)
68	dGo=0
6B� (depth � 1)=1 � dGo=Go
6L� dGo=0 � Go=2 � dGo=1
6V� dGo=0 � Go=1 � dGo=2
6`
=dGo+2
6j
6t��checkifjump(piece,depth)
6~king(depth,lev(depth))=�
6�2oldnj(depth,lev(depth))=nj(depth,lev(depth)-1)
6�/nj(depth,lev(depth))=nj(depth,lev(depth)-1)
6�2� �row(piece)-2 = �row(piece-14) � d1(depth) �
6�@� quad(depth,lev(depth),piece-14)=0 � �copp(depth,piece-7) �
6�\� quad(depth,lev(depth),piece)=1 � (piece-14>-1 � piece-14<8) � king(depth,lev(depth))=�
6�R� q=0 � 31:quad(depth,lev(depth)+1,numsq(q))=quad(depth,lev(depth),numsq(q)):�
6�Bquad(depth,lev(depth)+1,piece-14)=quad(depth,lev(depth),piece)
6�>� king(depth,lev(depth)) � quad(depth,lev(depth),piece)+=2
6�Gquad(depth,lev(depth)+1,piece-7)=0:quad(depth,lev(depth)+1,piece)=0
6�2nj(depth,lev(depth))=oldnj(depth,lev(depth))+1
6�lev(depth)+=1
6� �checkifjump(piece-14,depth)
7lev(depth)-=1
7
king(depth,lev(depth))=�
7pjump(depth)=�
7�
7(�
72:
7<2� �row(piece)-2 = �row(piece-18) � d1(depth) �
7F@� quad(depth,lev(depth),piece-18)=0 � �copp(depth,piece-9) �
7P\� quad(depth,lev(depth),piece)=1 � (piece-18>-1 � piece-18<8) � king(depth,lev(depth))=�
7ZR� q=0 � 31:quad(depth,lev(depth)+1,numsq(q))=quad(depth,lev(depth),numsq(q)):�
7dBquad(depth,lev(depth)+1,piece-18)=quad(depth,lev(depth),piece)
7nGquad(depth,lev(depth)+1,piece-9)=0:quad(depth,lev(depth)+1,piece)=0
7x2nj(depth,lev(depth))=oldnj(depth,lev(depth))+1
7�lev(depth)+=1
7� �checkifjump(piece-18,depth)
7�lev(depth)-=1
7�king(depth,lev(depth))=�
7�pjump(depth)=�
7��
7��
7�:
7�2� �row(piece)+2 = �row(piece+14) � d2(depth) �
7�@� quad(depth,lev(depth),piece+14)=0 � �copp(depth,piece+7) �
7�]� quad(depth,lev(depth),piece)=2 � (piece+14>55 � piece+14<64) � king(depth,lev(depth))=�
7�R� q=0 � 31:quad(depth,lev(depth)+1,numsq(q))=quad(depth,lev(depth),numsq(q)):�
7�Bquad(depth,lev(depth)+1,piece+14)=quad(depth,lev(depth),piece)
8Gquad(depth,lev(depth)+1,piece+7)=0:quad(depth,lev(depth)+1,piece)=0
82nj(depth,lev(depth))=oldnj(depth,lev(depth))+1
8lev(depth)+=1
8" �checkifjump(piece+14,depth)
8,lev(depth)-=1
86king(depth,lev(depth))=�
8@pjump(depth)=�
8J�
8T�
8^:
8h2� �row(piece)+2 = �row(piece+18) � d2(depth) �
8r@� quad(depth,lev(depth),piece+18)=0 � �copp(depth,piece+9) �
8|]� quad(depth,lev(depth),piece)=2 � (piece+18>55 � piece+18<64) � king(depth,lev(depth))=�
8�R� q=0 � 31:quad(depth,lev(depth)+1,numsq(q))=quad(depth,lev(depth),numsq(q)):�
8�Bquad(depth,lev(depth)+1,piece+18)=quad(depth,lev(depth),piece)
8�Gquad(depth,lev(depth)+1,piece+9)=0:quad(depth,lev(depth)+1,piece)=0
8�2nj(depth,lev(depth))=oldnj(depth,lev(depth))+1
8�lev(depth)+=1
8� �checkifjump(piece+18,depth)
8�lev(depth)-=1
8�king(depth,lev(depth))=�
8�pjump(depth)=�
8��
8��
8�:
8�C� lev(depth)>1 � oldnj(depth,lev(depth))=nj(depth,lev(depth)) �
9!tempscore(depth)=lev(depth)+1
94� king(depth,lev(depth)-1) � tempscore(depth)+=1
99� (depth � 1)=0 � tempscore(depth)=tempscore(depth)*2
9&� depth<level% �
90� q=0�31
9:<quad(depth+1,1,numsq(q))=quad(depth,lev(depth),numsq(q))
9D�
9N)tempscore(depth)-=�nextdepth(depth+1)
9X�
9bR� tempscore(depth)>bscore(depth) � (tempscore(depth)=bscore(depth) � �(2)=2) �
9l"bscore(depth)=tempscore(depth)
9v� depth=1 �
9�� q=0�63
9�bestpos(q)=quad(1,lev(1),q)
9��
9��
9��
9��
9��
9� 
9���checkifmove(piece,depth)
9�"king(depth,1)=�:pmove(depth)=�
9�
9�1� �row(piece)-1 = �row(piece-7) � d1(depth) �
9�� quad(depth,1,piece-7)=0 �
:H� quad(depth,1,piece)=1 � (piece-7>-1 � piece-7<8) � king(depth,1)=�
:score(depth)=.5
:&� king(depth,1) � score(depth)+=.4
: 1� (depth � 1)=0 � score(depth)=score(depth)*2
:*� depth<level% � depth=1 �
:4� q=0 � 31
:>3quad(depth+1,1,numsq(q))=quad(depth,1,numsq(q))
:H�
:R1quad(depth+1,1,piece-7)=quad(depth+1,1,piece)
:\quad(depth+1,1,piece)=0
:f0� king(depth,1) � quad(depth+1,1,piece-7)+=2
:p
:z
:�
:�6� depth<level% � score(depth)-=�nextdepth(depth+1)
:��
:�X� ((score(depth)>bscore(depth)) � (score(depth)=bscore(depth) � �(2)=2)) � depth=1 �
:�bscore(depth)=score(depth)
:�� q=0 � 31
:�.bestpos(numsq(q))=quad(depth+1,1,numsq(q))
:��
:��
:�!pjump(depth)=�:pmove(depth)=�
:�king(depth,1)=�
:��
:��
;:
;1� �row(piece)-1 = �row(piece-9) � d1(depth) �
;� quad(depth,1,piece-9)=0 �
;$H� quad(depth,1,piece)=1 � (piece-9>-1 � piece-9<8) � king(depth,1)=�
;.score(depth)=.5
;8&� king(depth,1) � score(depth)+=.4
;B1� (depth � 1)=0 � score(depth)=score(depth)*2
;L� depth<level% � depth=1 �
;V� q=0 � 31
;`3quad(depth+1,1,numsq(q))=quad(depth,1,numsq(q))
;j�
;t1quad(depth+1,1,piece-9)=quad(depth+1,1,piece)
;~quad(depth+1,1,piece)=0
;�0� king(depth,1) � quad(depth+1,1,piece-9)+=2
;�6� depth<level% � score(depth)-=�nextdepth(depth+1)
;��
;�X� ((score(depth)>bscore(depth)) � (score(depth)=bscore(depth) � �(2)=2)) � depth=1 �
;�bscore(depth)=score(depth)
;�� q=0 � 31
;�.bestpos(numsq(q))=quad(depth+1,1,numsq(q))
;��
;��
;�!pjump(depth)=�:pmove(depth)=�
;�king(depth,1)=�
;��
<�
<
:
<1� �row(piece)+1 = �row(piece+7) � d2(depth) �
<� quad(depth,1,piece+7)=0 �
<(I� quad(depth,1,piece)=1 � (piece+7>55 � piece+7<64) � king(depth,1)=�
<2score(depth)=.5
<<&� king(depth,1) � score(depth)+=.4
<F1� (depth � 1)=0 � score(depth)=score(depth)*2
<P� depth<level% � depth=1 �
<Z� q=0 � 31
<d3quad(depth+1,1,numsq(q))=quad(depth,1,numsq(q))
<n�
<x1quad(depth+1,1,piece+7)=quad(depth+1,1,piece)
<�quad(depth+1,1,piece)=0
<�0� king(depth,1) � quad(depth+1,1,piece+7)+=2
<�6� depth<level% � score(depth)-=�nextdepth(depth+1)
<��
<�X� ((score(depth)>bscore(depth)) � (score(depth)=bscore(depth) � �(2)=2)) � depth=1 �
<�bscore(depth)=score(depth)
<�� q=0 � 31
<�.bestpos(numsq(q))=quad(depth+1,1,numsq(q))
<��
<��
<�!pjump(depth)=�:pmove(depth)=�
<�king(depth,1)=�
<��
=�
=:
=1� �row(piece)+1 = �row(piece+9) � d2(depth) �
="� quad(depth,1,piece+9)=0 �
=,I� quad(depth,1,piece)=1 � (piece+9>55 � piece+9<64) � king(depth,1)=�
=6score(depth)=.5
=@&� king(depth,1) � score(depth)+=.4
=J1� (depth � 1)=0 � score(depth)=score(depth)*2
=T� depth<level% � depth=1 �
=^� q=0 � 31
=h3quad(depth+1,1,numsq(q))=quad(depth,1,numsq(q))
=r�
=|1quad(depth+1,1,piece+9)=quad(depth+1,1,piece)
=�quad(depth+1,1,piece)=0
=�0� king(depth,1) � quad(depth+1,1,piece+9)+=2
=�6� depth<level% � score(depth)-=�nextdepth(depth+1)
=��
=�X� ((score(depth)>bscore(depth)) � (score(depth)=bscore(depth) � �(2)=2)) � depth=1 �
=�bscore(depth)=score(depth)
=�� q=0 � 31
=�.bestpos(numsq(q))=quad(depth+1,1,numsq(q))
=��
=��
=�!pjump(depth)=�:pmove(depth)=�
=�king(depth,1)=�
=��
>�
>
>
>&
>0
>:
>D
>N
>X
>b
>l�
>v
>�ݤcopp(depth,pc)
>�
dOgo=0
>�� (depth � 1)=0 � dOgo=Go
>�� dOgo=0 � Go=2 � dOgo=1
>�� dOgo=0 � Go=1 � dOgo=2
>�M� quad(depth,lev(depth),pc)=dOgo � quad(depth,lev(depth),pc)=dOgo+2 � :=�
>�=�
>�
>���compgo
>�bestpos()=0
>�incomp=�
>��greymenu(0,�,�)
>�(�setgoicon(�):�poll:� finished% �end
?� incomp=� � �
?bestscore=-500:bestpos2()=0
?#�q=0�63:quad(1,1,q)=square(q):�
? depth=1:hff=-1
?*!scorenohuff=�nextdepth(depth)
?40� incomp=� � �setgotext:�ungreymenu(�,�,�):�
?>C� scorenohuff>-250 � bestscore=scorenohuff:bestpos2()=bestpos()
?H� phuff<>� �
?R� h=0 � phuff-1
?\#�q=0�63:quad(1,1,q)=square(q):�
?fquad(1,1,huff(h))=0
?pdepth=1
?z!thisscore=�nextdepth(depth)+1
?�� incomp=� � h=phuff-1
?�J� thisscore>bestscore � bestscore=thisscore:bestpos2()=bestpos():hff=h
?��
?��
?�0� incomp=� � �setgotext:�ungreymenu(�,�,�):�
?�9� hff<>-1 � found=huff(hff):�lightningbolt(huff(hff))
?��setgoicon(�)
?�!� bestscore<-250 � �concede:�
?��poll:� finished% �end
?�
?�
�setboard
?��ungreymenu(�,�,�)
?��countmen:�checkifwon
@nphuff=�
@�justmoved
@incomp=�
@$�
@. 
@8��setboard
@B�q=0�63
@L*� q<8 � bestpos2(q)=1 � bestpos2(q)+=2
@V+� q>55 � bestpos2(q)=2 � bestpos2(q)+=2
@`O� square(q) <> bestpos2(q) � �setpiece(q,bestpos2(q)):square(q)=bestpos2(q)
@j�
@t�
@~ 
@���opensave
@�9ș"Wimp_CreateSubMenu",,block%!20,block%!24,block%!28
@�1�alterIcon(save_handle%,10,"!"+filename$,0,1)
@�Oș"Wimp_SetCaretPosition",save_handle%,10,,,-1,�(�gettext(save_handle%,10))
@��
@�
@���openplayers
@�9ș"Wimp_CreateSubMenu",,block%!20,block%!24,block%!28
@�)� Plyr1=0 � P1$="User" � P1$="Archie"
@�)� Plyr2=0 � P2$="User" � P2$="Archie"
@�-�alterIcon(players_handle%,3,"#"+P1$,0,1)
@�-�alterIcon(players_handle%,7,"#"+P2$,0,1)
A2�alterIcon(players_handle%,18,"#"+�level%,0,1)
A
levelp%=level%
APlyr1p=Plyr1
APlyr2p=Plyr2
A(�
�
00000000  0d 00 0a 1e f4 3e 3c 44  72 61 75 67 68 74 73 24  |.....><Draughts$|
00000010  44 69 72 3e 2e 21 52 75  6e 49 6d 61 67 65 0d 00  |Dir>.!RunImage..|
00000020  14 35 ee 85 20 f2 65 72  72 6f 72 28 f6 24 2b 22  |.5.. .error(.$+"|
00000030  20 28 69 6e 74 65 72 6e  61 6c 20 65 72 72 6f 72  | (internal error|
00000040  20 63 6f 64 65 20 22 2b  28 c3 9e 29 2b 22 29 22  | code "+(..)+")"|
00000050  2c b9 29 0d 00 1e 09 f2  69 6e 69 74 0d 00 28 33  |,.).....init..(3|
00000060  ee 85 20 f2 65 72 72 6f  72 28 f6 24 2b 22 20 28  |.. .error(.$+" (|
00000070  69 6e 74 65 72 6e 61 6c  20 65 72 72 6f 72 20 63  |internal error c|
00000080  6f 64 65 20 22 2b c3 9e  2b 22 29 22 2c a3 29 0d  |ode "+..+")",.).|
00000090  00 32 0b 6d 61 73 6b 25  3d 30 0d 00 3c 05 f5 0d  |.2.mask%=0..<...|
000000a0  00 46 09 f2 70 6f 6c 6c  0d 00 50 1c e7 20 70 6c  |.F..poll..P.. pl|
000000b0  61 79 69 6e 67 25 20 8c  20 f2 63 68 65 63 6b 69  |aying% . .checki|
000000c0  66 77 6f 6e 0d 00 5a 21  e7 20 70 6c 61 79 69 6e  |fwon..Z!. playin|
000000d0  67 25 20 80 20 50 6c 79  72 31 3d 31 20 80 20 47  |g% . Plyr1=1 . G|
000000e0  6f 3d 31 20 8c 0d 00 64  0b f2 63 6f 6d 70 67 6f  |o=1 ...d..compgo|
000000f0  0d 00 6e 11 f2 73 65 74  67 6f 69 63 6f 6e 28 b9  |..n..setgoicon(.|
00000100  29 0d 00 78 05 cd 0d 00  82 09 f2 70 6f 6c 6c 0d  |)..x.......poll.|
00000110  00 8c 1c e7 20 70 6c 61  79 69 6e 67 25 20 8c 20  |.... playing% . |
00000120  f2 63 68 65 63 6b 69 66  77 6f 6e 0d 00 96 21 e7  |.checkifwon...!.|
00000130  20 70 6c 61 79 69 6e 67  25 20 80 20 50 6c 79 72  | playing% . Plyr|
00000140  32 3d 31 20 80 20 47 6f  3d 32 20 8c 0d 00 a0 0b  |2=1 . Go=2 .....|
00000150  f2 63 6f 6d 70 67 6f 0d  00 aa 11 f2 73 65 74 67  |.compgo.....setg|
00000160  6f 69 63 6f 6e 28 b9 29  0d 00 b4 05 cd 0d 00 be  |oicon(.)........|
00000170  0f fd 20 66 69 6e 69 73  68 65 64 25 0d 00 c8 05  |.. finished%....|
00000180  20 0d 00 d2 09 dd f2 65  6e 64 0d 00 dc 2d c8 99  | ......end...-..|
00000190  22 57 69 6d 70 5f 43 6c  6f 73 65 44 6f 77 6e 22  |"Wimp_CloseDown"|
000001a0  2c 74 61 73 6b 5f 68 61  6e 64 6c 65 25 2c 26 34  |,task_handle%,&4|
000001b0  42 35 33 34 31 35 34 0d  00 e6 05 e0 0d 00 f0 05  |B534154.........|
000001c0  20 0d 00 fa 0a dd f2 70  6f 6c 6c 0d 01 04 28 c8  | ......poll...(.|
000001d0  99 22 57 69 6d 70 5f 50  6f 6c 6c 22 2c 6d 61 73  |."Wimp_Poll",mas|
000001e0  6b 25 2c 62 6c 6f 63 6b  25 20 b8 20 72 65 61 73  |k%,block% . reas|
000001f0  6f 6e 25 0d 01 0e 10 c8  8e 20 72 65 61 73 6f 6e  |on%...... reason|
00000200  25 20 ca 0d 01 18 0d c9  20 32 3a f2 6f 70 65 6e  |% ...... 2:.open|
00000210  0d 01 22 0e c9 20 33 3a  f2 63 6c 6f 73 65 0d 01  |..".. 3:.close..|
00000220  2c 2c c9 20 36 3a f2 63  6c 69 63 6b 28 62 6c 6f  |,,. 6:.click(blo|
00000230  63 6b 25 21 38 2c 62 6c  6f 63 6b 25 21 31 32 2c  |ck%!8,block%!12,|
00000240  62 6c 6f 63 6b 25 21 31  36 29 0d 01 36 11 c9 20  |block%!16)..6.. |
00000250  37 3a f2 64 72 61 67 64  6f 6e 65 0d 01 40 2f c9  |7:.dragdone..@/.|
00000260  20 38 3a f2 6b 65 79 70  72 65 73 73 65 64 28 21  | 8:.keypressed(!|
00000270  62 6c 6f 63 6b 25 2c 62  6c 6f 63 6b 25 21 34 2c  |block%,block%!4,|
00000280  62 6c 6f 63 6b 25 21 32  34 29 0d 01 4a 13 c9 20  |block%!24)..J.. |
00000290  39 3a f2 64 65 63 6f 64  65 6d 65 6e 75 0d 01 54  |9:.decodemenu..T|
000002a0  14 c9 20 31 37 2c 31 38  3a f2 6d 65 73 73 61 67  |.. 17,18:.messag|
000002b0  65 0d 01 5e 05 cb 0d 01  68 05 cd 0d 01 72 05 e1  |e..^....h....r..|
000002c0  0d 01 7c 05 20 0d 01 86  18 dd f2 65 72 72 6f 72  |..|. ......error|
000002d0  28 65 72 72 24 2c 66 61  74 61 6c 25 29 0d 01 90  |(err$,fatal%)...|
000002e0  17 c8 99 22 57 69 6d 70  5f 44 72 61 67 42 6f 78  |..."Wimp_DragBox|
000002f0  22 2c 2c 30 0d 01 9a 0d  21 62 6c 6f 63 6b 25 3d  |",,0....!block%=|
00000300  9e 0d 01 a4 14 24 28 62  6c 6f 63 6b 25 2b 34 29  |.....$(block%+4)|
00000310  3d 65 72 72 24 0d 01 ae  2c c8 99 22 57 69 6d 70  |=err$...,.."Wimp|
00000320  5f 52 65 70 6f 72 74 45  72 72 6f 72 22 2c 62 6c  |_ReportError",bl|
00000330  6f 63 6b 25 2c 31 2c 22  44 72 61 75 67 68 74 73  |ock%,1,"Draughts|
00000340  22 0d 01 b8 38 e7 20 66  61 74 61 6c 25 20 8c 20  |"...8. fatal% . |
00000350  c8 99 22 57 69 6d 70 5f  43 6c 6f 73 65 44 6f 77  |.."Wimp_CloseDow|
00000360  6e 22 2c 74 61 73 6b 5f  68 61 6e 64 6c 65 25 2c  |n",task_handle%,|
00000370  26 34 42 35 33 34 31 35  34 0d 01 c2 05 e1 0d 01  |&4B534154.......|
00000380  cc 05 20 0d 01 d6 0a dd  f2 69 6e 69 74 0d 01 e0  |.. ......init...|
00000390  40 c8 99 22 57 69 6d 70  5f 49 6e 69 74 69 61 6c  |@.."Wimp_Initial|
000003a0  69 73 65 22 2c 32 30 30  2c 26 34 42 35 33 34 31  |ise",200,&4B5341|
000003b0  35 34 2c 22 44 72 61 75  67 68 74 73 22 20 b8 20  |54,"Draughts" . |
000003c0  2c 74 61 73 6b 5f 68 61  6e 64 6c 65 25 0d 01 ea  |,task_handle%...|
000003d0  1e de 20 62 6c 6f 63 6b  25 20 35 35 30 30 2c 62  |.. block% 5500,b|
000003e0  6c 6f 63 6b 32 25 20 31  30 32 34 0d 01 f4 1d de  |lock2% 1024.....|
000003f0  20 6d 61 69 6e 32 25 20  34 35 30 30 2c 6d 61 69  | main2% 4500,mai|
00000400  6e 33 25 20 35 35 30 30  0d 01 fe 4c de 20 69 6e  |n3% 5500...L. in|
00000410  64 31 25 20 34 39 2c 69  6e 64 32 25 20 34 39 2c  |d1% 49,ind2% 49,|
00000420  69 6e 64 33 25 20 33 35  30 2c 69 6e 64 34 25 20  |ind3% 350,ind4% |
00000430  30 2c 69 6e 64 35 25 20  33 30 2c 69 6e 64 36 25  |0,ind5% 30,ind6%|
00000440  20 32 36 30 2c 69 6e 64  37 25 20 30 2c 69 6e 64  | 260,ind7% 0,ind|
00000450  38 25 20 30 0d 02 08 0f  de 20 70 61 6e 65 25 20  |8% 0..... pane% |
00000460  39 32 30 0d 02 12 17 de  20 70 69 78 65 6c 20 31  |920..... pixel 1|
00000470  36 3a 3f 70 69 78 65 6c  3d 30 0d 02 1c 18 e3 70  |6:?pixel=0.....p|
00000480  3d 31 b8 31 36 3a 70 69  78 65 6c 3f 70 3d 31 35  |=1.16:pixel?p=15|
00000490  3a ed 0d 02 26 26 c8 99  22 57 69 6d 70 5f 53 6c  |:...&&.."Wimp_Sl|
000004a0  6f 74 53 69 7a 65 22 2c  2d 31 2c 2d 31 20 b8 20  |otSize",-1,-1 . |
000004b0  73 6c 6f 74 73 69 7a 65  0d 02 30 13 f2 73 65 74  |slotsize..0..set|
000004c0  75 70 76 61 72 73 6e 64  69 6d 73 0d 02 3a 10 67  |upvarsndims..:.g|
000004d0  72 62 6c 61 63 6b 65 64  3d 2d 31 0d 02 44 17 64  |rblacked=-1..D.d|
000004e0  69 6d 65 6e 73 69 6f 6e  3d 30 3a f2 76 61 72 73  |imension=0:.vars|
000004f0  33 64 0d 02 4e 19 73 70  72 69 74 65 73 25 3d 28  |3d..N.sprites%=(|
00000500  93 2b 31 29 2b 28 38 31  39 32 29 0d 02 58 22 c8  |.+1)+(8192)..X".|
00000510  95 20 28 73 70 72 69 74  65 73 25 20 81 20 34 29  |. (sprites% . 4)|
00000520  3c 3e 20 73 70 72 69 74  65 73 25 2f 34 0d 02 62  |<> sprites%/4..b|
00000530  0f 73 70 72 69 74 65 73  25 2b 3d 31 0d 02 6c 05  |.sprites%+=1..l.|
00000540  ce 0d 02 76 10 f2 6c 6f  61 64 73 70 72 69 74 65  |...v..loadsprite|
00000550  73 0d 02 80 35 c8 99 22  57 69 6d 70 5f 4f 70 65  |s...5.."Wimp_Ope|
00000560  6e 54 65 6d 70 6c 61 74  65 22 2c 2c 22 3c 44 72  |nTemplate",,"<Dr|
00000570  61 75 67 68 74 73 24 44  69 72 3e 2e 54 65 6d 70  |aughts$Dir>.Temp|
00000580  6c 61 74 65 73 22 0d 02  8a 3e c8 99 22 57 69 6d  |lates"...>.."Wim|
00000590  70 5f 4c 6f 61 64 54 65  6d 70 6c 61 74 65 22 2c  |p_LoadTemplate",|
000005a0  2c 6d 61 69 6e 32 25 2c  69 6e 64 31 25 2c 69 6e  |,main2%,ind1%,in|
000005b0  64 31 25 2b 34 39 2c 2d  31 2c 22 6d 61 69 6e 32  |d1%+49,-1,"main2|
000005c0  44 22 2c 30 0d 02 94 16  6d 61 69 6e 32 25 21 36  |D",0....main2%!6|
000005d0  34 3d 73 70 72 69 74 65  73 25 0d 02 9e 3e c8 99  |4=sprites%...>..|
000005e0  22 57 69 6d 70 5f 4c 6f  61 64 54 65 6d 70 6c 61  |"Wimp_LoadTempla|
000005f0  74 65 22 2c 2c 6d 61 69  6e 33 25 2c 69 6e 64 32  |te",,main3%,ind2|
00000600  25 2c 69 6e 64 32 25 2b  34 39 2c 2d 31 2c 22 6d  |%,ind2%+49,-1,"m|
00000610  61 69 6e 33 44 22 2c 30  0d 02 a8 16 6d 61 69 6e  |ain3D",0....main|
00000620  33 25 21 36 34 3d 73 70  72 69 74 65 73 25 0d 02  |3%!64=sprites%..|
00000630  b2 30 c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |.0.."Wimp_Create|
00000640  57 69 6e 64 6f 77 22 2c  2c 6d 61 69 6e 33 25 20  |Window",,main3% |
00000650  b8 20 6d 61 69 6e 5f 68  61 6e 64 6c 65 25 0d 02  |. main_handle%..|
00000660  bc 3d c8 99 22 57 69 6d  70 5f 4c 6f 61 64 54 65  |.=.."Wimp_LoadTe|
00000670  6d 70 6c 61 74 65 22 2c  2c 62 6c 6f 63 6b 25 2c  |mplate",,block%,|
00000680  69 6e 64 33 25 2c 69 6e  64 33 25 2b 33 35 30 2c  |ind3%,ind3%+350,|
00000690  2d 31 2c 22 69 6e 66 6f  22 2c 30 0d 02 c6 16 62  |-1,"info",0....b|
000006a0  6c 6f 63 6b 25 21 36 34  3d 73 70 72 69 74 65 73  |lock%!64=sprites|
000006b0  25 0d 02 d0 30 c8 99 22  57 69 6d 70 5f 43 72 65  |%...0.."Wimp_Cre|
000006c0  61 74 65 57 69 6e 64 6f  77 22 2c 2c 62 6c 6f 63  |ateWindow",,bloc|
000006d0  6b 25 20 b8 20 69 6e 66  6f 5f 68 61 6e 64 6c 65  |k% . info_handle|
000006e0  25 0d 02 da 3f c8 99 22  57 69 6d 70 5f 4c 6f 61  |%...?.."Wimp_Loa|
000006f0  64 54 65 6d 70 6c 61 74  65 22 2c 2c 62 6c 6f 63  |dTemplate",,bloc|
00000700  6b 25 2c 69 6e 64 34 25  2c 69 6e 64 34 25 2b 30  |k%,ind4%,ind4%+0|
00000710  2c 2d 31 2c 22 73 74 65  70 74 68 72 75 22 2c 30  |,-1,"stepthru",0|
00000720  0d 02 e4 16 62 6c 6f 63  6b 25 21 36 34 3d 73 70  |....block%!64=sp|
00000730  72 69 74 65 73 25 0d 02  ee 34 c8 99 22 57 69 6d  |rites%...4.."Wim|
00000740  70 5f 43 72 65 61 74 65  57 69 6e 64 6f 77 22 2c  |p_CreateWindow",|
00000750  2c 62 6c 6f 63 6b 25 20  b8 20 73 74 65 70 74 68  |,block% . stepth|
00000760  72 75 5f 68 61 6e 64 6c  65 25 0d 02 f8 3f c8 99  |ru_handle%...?..|
00000770  22 57 69 6d 70 5f 4c 6f  61 64 54 65 6d 70 6c 61  |"Wimp_LoadTempla|
00000780  74 65 22 2c 2c 62 6c 6f  63 6b 25 2c 69 6e 64 35  |te",,block%,ind5|
00000790  25 2c 69 6e 64 35 25 2b  33 30 2c 2d 31 2c 22 70  |%,ind5%+30,-1,"p|
000007a0  6c 61 79 65 72 73 22 2c  30 0d 03 02 16 62 6c 6f  |layers",0....blo|
000007b0  63 6b 25 21 36 34 3d 73  70 72 69 74 65 73 25 0d  |ck%!64=sprites%.|
000007c0  03 0c 33 c8 99 22 57 69  6d 70 5f 43 72 65 61 74  |..3.."Wimp_Creat|
000007d0  65 57 69 6e 64 6f 77 22  2c 2c 62 6c 6f 63 6b 25  |eWindow",,block%|
000007e0  20 b8 20 70 6c 61 79 65  72 73 5f 68 61 6e 64 6c  | . players_handl|
000007f0  65 25 0d 03 16 3f c8 99  22 57 69 6d 70 5f 4c 6f  |e%...?.."Wimp_Lo|
00000800  61 64 54 65 6d 70 6c 61  74 65 22 2c 2c 62 6c 6f  |adTemplate",,blo|
00000810  63 6b 25 2c 69 6e 64 36  25 2c 69 6e 64 36 25 2b  |ck%,ind6%,ind6%+|
00000820  32 36 30 2c 2d 31 2c 22  73 61 76 65 61 73 22 2c  |260,-1,"saveas",|
00000830  30 0d 03 20 30 c8 99 22  57 69 6d 70 5f 43 72 65  |0.. 0.."Wimp_Cre|
00000840  61 74 65 57 69 6e 64 6f  77 22 2c 2c 62 6c 6f 63  |ateWindow",,bloc|
00000850  6b 25 20 b8 20 73 61 76  65 5f 68 61 6e 64 6c 65  |k% . save_handle|
00000860  25 0d 03 2a 3f c8 99 22  57 69 6d 70 5f 4c 6f 61  |%..*?.."Wimp_Loa|
00000870  64 54 65 6d 70 6c 61 74  65 22 2c 2c 62 6c 6f 63  |dTemplate",,bloc|
00000880  6b 25 2c 69 6e 64 38 25  2c 69 6e 64 38 25 2b 30  |k%,ind8%,ind8%+0|
00000890  2c 2d 31 2c 22 67 72 61  70 68 69 63 73 22 2c 30  |,-1,"graphics",0|
000008a0  0d 03 34 34 c8 99 22 57  69 6d 70 5f 43 72 65 61  |..44.."Wimp_Crea|
000008b0  74 65 57 69 6e 64 6f 77  22 2c 2c 62 6c 6f 63 6b  |teWindow",,block|
000008c0  25 20 b8 20 67 72 61 70  68 69 63 73 5f 68 61 6e  |% . graphics_han|
000008d0  64 6c 65 25 0d 03 3e 3a  c8 99 22 57 69 6d 70 5f  |dle%..>:.."Wimp_|
000008e0  4c 6f 61 64 54 65 6d 70  6c 61 74 65 22 2c 2c 70  |LoadTemplate",,p|
000008f0  61 6e 65 25 2c 69 6e 64  37 25 2c 69 6e 64 37 25  |ane%,ind7%,ind7%|
00000900  2b 30 2c 2d 31 2c 22 70  61 6e 65 22 2c 30 0d 03  |+0,-1,"pane",0..|
00000910  48 1a c8 99 22 57 69 6d  70 5f 43 6c 6f 73 65 54  |H..."Wimp_CloseT|
00000920  65 6d 70 6c 61 74 65 22  0d 03 52 1a 66 69 6c 65  |emplate"..R.file|
00000930  6e 61 6d 65 24 3d 22 44  72 67 68 74 73 47 61 6d  |name$="DrghtsGam|
00000940  65 22 0d 03 5c 13 f2 73  65 74 75 70 62 6f 61 72  |e"..\..setupboar|
00000950  64 64 61 74 61 0d 03 66  11 f2 66 69 6e 64 67 72  |ddata..f..findgr|
00000960  61 70 68 69 63 73 0d 03  70 0f f2 73 65 74 75 70  |aphics..p..setup|
00000970  6d 65 6e 75 73 0d 03 7a  19 f2 6c 6f 61 64 66 69  |menus..z..loadfi|
00000980  6c 65 5f 73 74 61 72 74  65 64 77 69 74 68 0d 03  |le_startedwith..|
00000990  84 24 21 62 6c 6f 63 6b  25 3d 2d 31 3a 62 6c 6f  |.$!block%=-1:blo|
000009a0  63 6b 25 21 34 3d 30 3a  62 6c 6f 63 6b 25 21 38  |ck%!4=0:block%!8|
000009b0  3d 30 0d 03 8e 2d 62 6c  6f 63 6b 25 21 31 32 3d  |=0...-block%!12=|
000009c0  38 34 3a 62 6c 6f 63 6b  25 21 31 36 3d 36 38 3a  |84:block%!16=68:|
000009d0  62 6c 6f 63 6b 25 21 32  30 3d 26 33 30 30 32 0d  |block%!20=&3002.|
000009e0  03 98 1c 24 28 62 6c 6f  63 6b 25 2b 32 34 29 3d  |...$(block%+24)=|
000009f0  22 21 44 72 61 75 67 68  74 73 22 0d 03 a2 2a c8  |"!Draughts"...*.|
00000a00  99 22 57 69 6d 70 5f 43  72 65 61 74 65 49 63 6f  |."Wimp_CreateIco|
00000a10  6e 22 2c 2c 62 6c 6f 63  6b 25 20 b8 20 69 63 6f  |n",,block% . ico|
00000a20  6e 62 61 72 25 0d 03 ac  05 e1 0d 03 b6 05 20 0d  |nbar%......... .|
00000a30  03 c0 14 dd f2 73 65 74  75 70 62 6f 61 72 64 64  |.....setupboardd|
00000a40  61 74 61 0d 03 ca 66 6e  75 6d 73 71 28 29 3d 31  |ata...fnumsq()=1|
00000a50  2c 33 2c 35 2c 37 2c 38  2c 31 30 2c 31 32 2c 31  |,3,5,7,8,10,12,1|
00000a60  34 2c 31 37 2c 31 39 2c  32 31 2c 32 33 2c 32 34  |4,17,19,21,23,24|
00000a70  2c 32 36 2c 32 38 2c 33  30 2c 33 33 2c 33 35 2c  |,26,28,30,33,35,|
00000a80  33 37 2c 33 39 2c 34 30  2c 34 32 2c 34 34 2c 34  |37,39,40,42,44,4|
00000a90  36 2c 34 39 2c 35 31 2c  35 33 2c 35 35 2c 35 36  |6,49,51,53,55,56|
00000aa0  2c 35 38 2c 36 30 2c 36  32 0d 03 d4 18 21 62 6c  |,58,60,62....!bl|
00000ab0  6f 63 6b 25 3d 6d 61 69  6e 5f 68 61 6e 64 6c 65  |ock%=main_handle|
00000ac0  25 0d 03 de 0f e3 20 69  63 3d 30 20 b8 20 33 31  |%..... ic=0 . 31|
00000ad0  0d 03 e8 11 69 63 6e 3d  6e 75 6d 73 71 28 69 63  |....icn=numsq(ic|
00000ae0  29 0d 03 f2 10 62 6c 6f  63 6b 25 21 34 3d 69 63  |)....block%!4=ic|
00000af0  6e 0d 03 fc 21 c8 99 22  57 69 6d 70 5f 47 65 74  |n...!.."Wimp_Get|
00000b00  49 63 6f 6e 53 74 61 74  65 22 2c 2c 62 6c 6f 63  |IconState",,bloc|
00000b10  6b 25 0d 04 06 28 78 63  6f 6f 72 64 28 69 63 6e  |k%...(xcoord(icn|
00000b20  29 3d 28 62 6c 6f 63 6b  25 21 38 20 2b 20 62 6c  |)=(block%!8 + bl|
00000b30  6f 63 6b 25 21 31 36 29  2f 32 0d 04 10 14 79 72  |ock%!16)/2....yr|
00000b40  6f 77 3d 28 69 63 6e 20  81 20 38 29 2b 31 0d 04  |ow=(icn . 8)+1..|
00000b50  1a 1a 79 63 6f 6f 72 64  28 79 72 6f 77 29 3d 62  |..ycoord(yrow)=b|
00000b60  6c 6f 63 6b 25 21 31 32  0d 04 24 1b 73 71 73 69  |lock%!12..$.sqsi|
00000b70  7a 65 73 28 30 2c 69 63  6e 29 3d 62 6c 6f 63 6b  |zes(0,icn)=block|
00000b80  25 21 38 0d 04 2e 1e 73  71 73 69 7a 65 73 28 31  |%!8....sqsizes(1|
00000b90  2c 69 63 6e 29 3d 62 6c  6f 63 6b 25 21 31 32 2d  |,icn)=block%!12-|
00000ba0  34 0d 04 38 1c 73 71 73  69 7a 65 73 28 32 2c 69  |4..8.sqsizes(2,i|
00000bb0  63 6e 29 3d 62 6c 6f 63  6b 25 21 31 36 0d 04 42  |cn)=block%!16..B|
00000bc0  1c 73 71 73 69 7a 65 73  28 33 2c 69 63 6e 29 3d  |.sqsizes(3,icn)=|
00000bd0  62 6c 6f 63 6b 25 21 32  30 0d 04 4c 05 ed 0d 04  |block%!20..L....|
00000be0  56 05 e1 0d 04 60 05 20  0d 04 6a 11 dd f2 6c 6f  |V....`. ..j...lo|
00000bf0  61 64 73 70 72 69 74 65  73 0d 04 74 20 53 25 3d  |adsprites..t S%=|
00000c00  8e 22 3c 44 72 61 75 67  68 74 73 24 44 69 72 3e  |."<Draughts$Dir>|
00000c10  2e 53 70 72 69 74 65 73  22 0d 04 7e 0f 73 70 6c  |.Sprites"..~.spl|
00000c20  3d a2 23 53 25 2b 31 36  0d 04 88 08 d9 23 53 25  |=.#S%+16.....#S%|
00000c30  0d 04 92 21 f2 73 6c 6f  74 73 69 7a 65 28 73 6c  |...!.slotsize(sl|
00000c40  6f 74 73 69 7a 65 2b 73  70 6c 2b 31 36 33 38 34  |otsize+spl+16384|
00000c50  29 0d 04 9c 1c e7 20 6e  73 6c 6f 74 3c 28 73 6c  |)..... nslot<(sl|
00000c60  6f 74 73 69 7a 65 2b 73  70 6c 29 20 8c 0d 04 a6  |otsize+spl) ....|
00000c70  63 f2 65 72 72 6f 72 28  22 49 6e 73 75 66 66 69  |c.error("Insuffi|
00000c80  63 69 65 6e 74 20 6d 65  6d 6f 72 79 20 74 6f 20  |cient memory to |
00000c90  6c 6f 61 64 20 61 70 70  6c 69 63 61 74 69 6f 6e  |load application|
00000ca0  20 53 70 72 69 74 65 73  20 66 69 6c 65 20 2d 20  | Sprites file - |
00000cb0  6e 65 65 64 20 61 70 70  72 6f 78 69 6d 61 74 65  |need approximate|
00000cc0  6c 79 20 32 30 6b 2e 22  2c a3 29 3a f2 65 6e 64  |ly 20k.",.):.end|
00000cd0  0d 04 b0 05 cd 0d 04 ba  17 73 6c 6f 74 73 69 7a  |.........slotsiz|
00000ce0  65 2b 3d 73 70 6c 2b 31  36 33 38 34 0d 04 c4 1a  |e+=spl+16384....|
00000cf0  21 62 6c 6f 63 6b 25 3d  73 70 6c 3a 62 6c 6f 63  |!block%=spl:bloc|
00000d00  6b 25 21 34 3d 30 0d 04  ce 20 73 70 72 69 74 65  |k%!4=0... sprite|
00000d10  73 25 21 38 3d 31 36 3a  73 70 72 69 74 65 73 25  |s%!8=16:sprites%|
00000d20  21 31 32 3d 31 36 0d 04  d8 2d f4 20 2a 2a 2a 2a  |!12=16...-. ****|
00000d30  20 53 59 53 22 4f 53 5f  53 70 72 69 74 65 4f 70  | SYS"OS_SpriteOp|
00000d40  22 2c 32 36 35 2c 73 70  72 69 74 65 73 25 20 2a  |",265,sprites% *|
00000d50  2a 2a 2a 0d 04 e2 39 c8  99 22 4f 53 5f 53 70 72  |***...9.."OS_Spr|
00000d60  69 74 65 4f 70 22 2c 32  36 36 2c 73 70 72 69 74  |iteOp",266,sprit|
00000d70  65 73 25 2c 22 3c 44 72  61 75 67 68 74 73 24 44  |es%,"<Draughts$D|
00000d80  69 72 3e 2e 53 70 72 69  74 65 73 22 0d 04 ec 05  |ir>.Sprites"....|
00000d90  e1 0d 04 f6 05 20 0d 05  00 12 dd f2 66 69 6e 64  |..... ......find|
00000da0  67 72 61 70 68 69 63 73  0d 05 0a 4d c8 99 22 4f  |graphics...M.."O|
00000db0  53 5f 47 42 50 42 22 2c  39 2c 22 3c 44 72 61 75  |S_GBPB",9,"<Drau|
00000dc0  67 68 74 73 24 44 69 72  3e 2e 47 72 61 70 68 69  |ghts$Dir>.Graphi|
00000dd0  63 73 22 2c 62 6c 6f 63  6b 25 2c 32 35 36 2c 30  |cs",block%,256,0|
00000de0  2c 38 31 39 32 2c 30 20  b8 20 2c 2c 2c 6e 67 72  |,8192,0 . ,,,ngr|
00000df0  66 69 6c 65 73 0d 05 14  0c 6f 66 66 73 65 74 3d  |files....offset=|
00000e00  30 0d 05 1e 13 e3 20 66  3d 31 b8 20 6e 67 72 66  |0..... f=1. ngrf|
00000e10  69 6c 65 73 0d 05 28 09  66 24 3d 22 22 0d 05 32  |iles..(.f$=""..2|
00000e20  05 f5 0d 05 3c 18 66 24  2b 3d bd 28 62 6c 6f 63  |....<.f$+=.(bloc|
00000e30  6b 25 3f 6f 66 66 73 65  74 29 0d 05 46 0d 6f 66  |k%?offset)..F.of|
00000e40  66 73 65 74 2b 3d 31 0d  05 50 16 fd 20 62 6c 6f  |fset+=1..P.. blo|
00000e50  63 6b 25 3f 6f 66 66 73  65 74 20 3d 30 0d 05 5a  |ck%?offset =0..Z|
00000e60  0d 6f 66 66 73 65 74 2b  3d 31 0d 05 64 12 67 72  |.offset+=1..d.gr|
00000e70  61 70 68 69 63 24 28 66  29 3d 66 24 0d 05 6e 05  |aphic$(f)=f$..n.|
00000e80  ed 0d 05 78 1b 70 61 6e  65 25 21 34 34 3d 2d 28  |...x.pane%!44=-(|
00000e90  35 36 2a 6e 67 72 66 69  6c 65 73 29 0d 05 82 20  |56*ngrfiles)... |
00000ea0  e7 20 6e 67 72 66 69 6c  65 73 3c 33 20 8c 20 70  |. ngrfiles<3 . p|
00000eb0  61 6e 65 25 21 34 34 3d  2d 31 35 36 0d 05 8c 2f  |ane%!44=-156.../|
00000ec0  c8 99 22 57 69 6d 70 5f  43 72 65 61 74 65 57 69  |.."Wimp_CreateWi|
00000ed0  6e 64 6f 77 22 2c 2c 70  61 6e 65 25 20 b8 20 70  |ndow",,pane% . p|
00000ee0  61 6e 65 5f 68 61 6e 64  6c 65 25 0d 05 96 13 e3  |ane_handle%.....|
00000ef0  20 66 3d 31 b8 20 6e 67  72 66 69 6c 65 73 0d 05  | f=1. ngrfiles..|
00000f00  a0 34 f2 61 6c 74 65 72  49 63 6f 6e 28 70 61 6e  |.4.alterIcon(pan|
00000f10  65 5f 68 61 6e 64 6c 65  25 2c 66 2d 31 2c 22 23  |e_handle%,f-1,"#|
00000f20  22 2b 67 72 61 70 68 69  63 24 28 66 29 2c 30 2c  |"+graphic$(f),0,|
00000f30  31 29 0d 05 aa 05 ed 0d  05 b4 05 e1 0d 05 be 05  |1)..............|
00000f40  20 0d 05 c8 1a dd f2 6c  6f 61 64 66 69 6c 65 5f  | ......loadfile_|
00000f50  73 74 61 72 74 65 64 77  69 74 68 0d 05 d2 18 c8  |startedwith.....|
00000f60  99 22 4f 53 5f 47 65 74  45 6e 76 22 20 b8 20 65  |."OS_GetEnv" . e|
00000f70  6e 76 24 0d 05 dc 2b 65  6e 76 24 3d c1 65 6e 76  |nv$...+env$=.env|
00000f80  24 2c a7 65 6e 76 24 2c  22 22 22 22 2c a7 65 6e  |$,.env$,"""",.en|
00000f90  76 24 2c 22 22 22 22 29  2b 31 29 2b 31 29 0d 05  |v$,"""")+1)+1)..|
00000fa0  e6 13 c8 95 20 c0 65 6e  76 24 2c 31 29 3d 22 20  |.... .env$,1)=" |
00000fb0  22 0d 05 f0 11 65 6e 76  24 3d c1 65 6e 76 24 2c  |"....env$=.env$,|
00000fc0  32 29 0d 05 fa 05 ce 0d  06 04 0f 66 69 72 73 74  |2).........first|
00000fd0  6c 6f 61 64 3d b9 0d 06  0e 0f f2 6c 6f 61 64 28  |load=......load(|
00000fe0  65 6e 76 24 29 0d 06 18  0f 66 69 72 73 74 6c 6f  |env$)....firstlo|
00000ff0  61 64 3d a3 0d 06 22 05  e1 0d 06 2c 05 20 0d 06  |ad=..."....,. ..|
00001000  36 0b dd f2 73 74 6f 72  65 0d 06 40 0c e3 20 73  |6...store..@.. s|
00001010  3d 30 b8 33 31 0d 06 4a  27 73 74 6f 72 65 3f 28  |=0.31..J'store?(|
00001020  28 70 6f 73 2a 34 34 29  2b 73 29 3d 73 71 75 61  |(pos*44)+s)=squa|
00001030  72 65 28 6e 75 6d 73 71  28 73 29 29 0d 06 54 05  |re(numsq(s))..T.|
00001040  ed 0d 06 5e 0e e3 20 68  3d 30 20 b8 20 31 30 0d  |...^.. h=0 . 10.|
00001050  06 68 21 73 74 6f 72 65  3f 28 28 70 6f 73 2a 34  |.h!store?((pos*4|
00001060  34 29 2b 68 2b 33 32 29  3d 68 75 66 66 28 68 29  |4)+h+32)=huff(h)|
00001070  0d 06 72 05 ed 0d 06 7c  1d 73 74 6f 72 65 3f 28  |..r....|.store?(|
00001080  28 70 6f 73 2a 34 34 29  2b 34 33 29 3d 70 68 75  |(pos*44)+43)=phu|
00001090  66 66 0d 06 86 0a 70 6f  73 2b 3d 31 0d 06 90 05  |ff....pos+=1....|
000010a0  e1 0d 06 9a 05 20 0d 06  a4 18 dd f2 72 65 73 74  |..... ......rest|
000010b0  6f 72 65 62 6f 61 72 64  28 72 70 6f 73 29 0d 06  |oreboard(rpos)..|
000010c0  ae 0c e3 20 73 3d 30 b8  33 31 0d 06 b8 5f e7 20  |... s=0.31..._. |
000010d0  73 71 75 61 72 65 28 6e  75 6d 73 71 28 73 29 29  |square(numsq(s))|
000010e0  3c 3e 73 74 6f 72 65 3f  28 28 72 70 6f 73 2a 34  |<>store?((rpos*4|
000010f0  34 29 2b 73 29 20 84 20  69 6e 64 69 6d 3d b9 20  |4)+s) . indim=. |
00001100  8c 20 f2 73 65 74 70 69  65 63 65 28 6e 75 6d 73  |. .setpiece(nums|
00001110  71 28 73 29 2c 73 74 6f  72 65 3f 28 28 72 70 6f  |q(s),store?((rpo|
00001120  73 2a 34 34 29 2b 73 29  29 0d 06 c2 28 73 71 75  |s*44)+s))...(squ|
00001130  61 72 65 28 6e 75 6d 73  71 28 73 29 29 3d 73 74  |are(numsq(s))=st|
00001140  6f 72 65 3f 28 28 72 70  6f 73 2a 34 34 29 2b 73  |ore?((rpos*44)+s|
00001150  29 0d 06 cc 05 ed 0d 06  d6 0d f2 63 6f 75 6e 74  |)..........count|
00001160  6d 65 6e 0d 06 e0 05 e1  0d 06 ea 05 20 0d 06 f4  |men......... ...|
00001170  13 dd f2 72 65 73 74 6f  72 65 28 72 70 6f 73 29  |...restore(rpos)|
00001180  0d 06 fe 14 c8 99 22 48  6f 75 72 67 6c 61 73 73  |......"Hourglass|
00001190  5f 4f 6e 22 0d 07 08 0e  70 6f 73 3d 72 70 6f 73  |_On"....pos=rpos|
000011a0  2b 31 0d 07 12 17 f2 72  65 73 74 6f 72 65 62 6f  |+1.....restorebo|
000011b0  61 72 64 28 72 70 6f 73  29 0d 07 1c 0e e3 20 68  |ard(rpos)..... h|
000011c0  3d 30 20 b8 20 31 30 0d  07 26 22 68 75 66 66 28  |=0 . 10..&"huff(|
000011d0  68 29 3d 73 74 6f 72 65  3f 28 28 72 70 6f 73 2a  |h)=store?((rpos*|
000011e0  34 34 29 2b 33 32 2b 68  29 0d 07 30 05 ed 0d 07  |44)+32+h)..0....|
000011f0  3a 1e 70 68 75 66 66 3d  73 74 6f 72 65 3f 28 28  |:.phuff=store?((|
00001200  72 70 6f 73 2a 34 34 29  2b 34 33 29 0d 07 44 29  |rpos*44)+43)..D)|
00001210  e7 20 28 70 6f 73 20 80  20 31 29 20 8c 20 47 6f  |. (pos . 1) . Go|
00001220  3d 31 3a 4f 67 6f 3d 32  20 8b 20 47 6f 3d 32 3a  |=1:Ogo=2 . Go=2:|
00001230  4f 67 6f 3d 31 0d 07 4e  0e f2 73 65 74 67 6f 74  |Ogo=1..N..setgot|
00001240  65 78 74 0d 07 58 10 f2  63 68 65 63 6b 69 66 68  |ext..X..checkifh|
00001250  75 66 66 0d 07 62 16 f2  75 6e 67 72 65 79 6d 65  |uff..b..ungreyme|
00001260  6e 75 28 b9 2c b9 2c b9  29 0d 07 6c 15 c8 99 22  |nu(.,.,.)..l..."|
00001270  48 6f 75 72 67 6c 61 73  73 5f 4f 66 66 22 0d 07  |Hourglass_Off"..|
00001280  76 05 e1 0d 07 80 05 20  0d 07 8a 0f dd f2 73 65  |v...... ......se|
00001290  74 67 6f 74 65 78 74 0d  07 94 11 f2 73 65 74 67  |tgotext.....setg|
000012a0  6f 69 63 6f 6e 28 b9 29  0d 07 9e 24 e7 20 47 6f  |oicon(.)...$. Go|
000012b0  3d 31 20 8c 20 47 6f 24  3d 50 6c 79 72 31 24 20  |=1 . Go$=Plyr1$ |
000012c0  8b 20 47 6f 24 3d 50 6c  79 72 32 24 0d 07 a8 32  |. Go$=Plyr2$...2|
000012d0  e7 20 c2 47 6f 24 2c 31  29 3d 22 73 22 20 8c 20  |. .Go$,1)="s" . |
000012e0  47 6f 24 2b 3d 22 27 20  74 75 72 6e 22 20 8b 20  |Go$+="' turn" . |
000012f0  47 6f 24 2b 3d 22 27 73  20 74 75 72 6e 22 0d 07  |Go$+="'s turn"..|
00001300  b2 33 f2 61 6c 74 65 72  49 63 6f 6e 28 6d 61 69  |.3.alterIcon(mai|
00001310  6e 5f 68 61 6e 64 6c 65  25 2c 47 6f 74 65 78 74  |n_handle%,Gotext|
00001320  69 63 6f 6e 2c 22 21 22  2b 47 6f 24 2c 30 2c 31  |icon,"!"+Go$,0,1|
00001330  29 0d 07 bc 05 e1 0d 07  c6 05 20 0d 07 d0 0e dd  |)......... .....|
00001340  f2 63 6f 75 6e 74 6d 65  6e 0d 07 da 17 6d 31 3d  |.countmen....m1=|
00001350  30 3a 6d 32 3d 30 3a 6b  33 3d 30 3a 6b 34 3d 30  |0:m2=0:k3=0:k4=0|
00001360  0d 07 e4 0e e3 20 73 3d  30 20 b8 20 36 33 0d 07  |..... s=0 . 63..|
00001370  ee 12 c8 8e 20 73 71 75  61 72 65 28 73 29 20 ca  |.... square(s) .|
00001380  0d 07 f8 0d c9 20 31 3a  6d 31 2b 3d 31 0d 08 02  |..... 1:m1+=1...|
00001390  0d c9 20 32 3a 6d 32 2b  3d 31 0d 08 0c 0d c9 20  |.. 2:m2+=1..... |
000013a0  33 3a 6b 33 2b 3d 31 0d  08 16 0d c9 20 34 3a 6b  |3:k3+=1..... 4:k|
000013b0  34 2b 3d 31 0d 08 20 05  cb 0d 08 2a 05 ed 0d 08  |4+=1.. ....*....|
000013c0  34 30 f2 61 6c 74 65 72  49 63 6f 6e 28 6d 61 69  |40.alterIcon(mai|
000013d0  6e 5f 68 61 6e 64 6c 65  25 2c 6d 31 5f 69 63 6f  |n_handle%,m1_ico|
000013e0  6e 2c 22 23 22 2b c3 6d  31 2c 30 2c 31 29 0d 08  |n,"#"+.m1,0,1)..|
000013f0  3e 30 f2 61 6c 74 65 72  49 63 6f 6e 28 6d 61 69  |>0.alterIcon(mai|
00001400  6e 5f 68 61 6e 64 6c 65  25 2c 6d 32 5f 69 63 6f  |n_handle%,m2_ico|
00001410  6e 2c 22 23 22 2b c3 6d  32 2c 30 2c 31 29 0d 08  |n,"#"+.m2,0,1)..|
00001420  48 30 f2 61 6c 74 65 72  49 63 6f 6e 28 6d 61 69  |H0.alterIcon(mai|
00001430  6e 5f 68 61 6e 64 6c 65  25 2c 6b 33 5f 69 63 6f  |n_handle%,k3_ico|
00001440  6e 2c 22 23 22 2b c3 6b  33 2c 30 2c 31 29 0d 08  |n,"#"+.k3,0,1)..|
00001450  52 30 f2 61 6c 74 65 72  49 63 6f 6e 28 6d 61 69  |R0.alterIcon(mai|
00001460  6e 5f 68 61 6e 64 6c 65  25 2c 6b 34 5f 69 63 6f  |n_handle%,k4_ico|
00001470  6e 2c 22 23 22 2b c3 6b  34 2c 30 2c 31 29 0d 08  |n,"#"+.k4,0,1)..|
00001480  5c 05 e1 0d 08 66 05 20  0d 08 70 1c dd f2 73 65  |\....f. ..p...se|
00001490  74 70 69 65 63 65 28 70  69 65 63 65 6e 2c 70 69  |tpiece(piecen,pi|
000014a0  65 63 65 29 0d 08 7a 13  e7 20 64 69 6d 65 6e 73  |ece)..z.. dimens|
000014b0  69 6f 6e 3d 32 20 8c 0d  08 84 3c f2 61 6c 74 65  |ion=2 ....<.alte|
000014c0  72 49 63 6f 6e 28 6d 61  69 6e 5f 68 61 6e 64 6c  |rIcon(main_handl|
000014d0  65 25 2c 70 69 65 63 65  6e 2c 22 23 73 71 75 61  |e%,piecen,"#squa|
000014e0  72 65 22 2b c3 70 69 65  63 65 2b 22 39 22 2c 30  |re"+.piece+"9",0|
000014f0  2c 31 29 0d 08 8e 05 cc  0d 08 98 2e f2 61 6c 74  |,1)..........alt|
00001500  65 72 49 63 6f 6e 28 6d  61 69 6e 5f 68 61 6e 64  |erIcon(main_hand|
00001510  6c 65 25 2c 70 69 65 63  65 6e 2b 36 35 2c 22 23  |le%,piecen+65,"#|
00001520  22 2c 30 2c 31 29 0d 08  a2 14 72 6f 77 3d a4 72  |",0,1)....row=.r|
00001530  6f 77 28 70 69 65 63 65  6e 29 0d 08 ac 2b 21 62  |ow(piecen)...+!b|
00001540  6c 6f 63 6b 25 3d 6d 61  69 6e 5f 68 61 6e 64 6c  |lock%=main_handl|
00001550  65 25 3a 62 6c 6f 63 6b  25 21 34 3d 70 69 65 63  |e%:block%!4=piec|
00001560  65 6e 2b 36 35 0d 08 b6  21 c8 99 22 57 69 6d 70  |en+65...!.."Wimp|
00001570  5f 47 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_GetIconState",,|
00001580  62 6c 6f 63 6b 25 0d 08  c0 1f c8 99 22 57 69 6d  |block%......"Wim|
00001590  70 5f 44 65 6c 65 74 65  49 63 6f 6e 22 2c 2c 62  |p_DeleteIcon",,b|
000015a0  6c 6f 63 6b 25 0d 08 ca  1a 70 69 65 63 65 67 6e  |lock%....piecegn|
000015b0  3d 28 70 69 65 63 65 2a  31 30 29 2b 72 6f 77 0d  |=(piece*10)+row.|
000015c0  08 d4 1a 67 72 78 3d 67  72 73 69 7a 65 73 28 30  |...grx=grsizes(0|
000015d0  2c 70 69 65 63 65 67 6e  29 0d 08 de 1a 67 72 79  |,piecegn)....gry|
000015e0  3d 67 72 73 69 7a 65 73  28 31 2c 70 69 65 63 65  |=grsizes(1,piece|
000015f0  67 6e 29 0d 08 e8 19 62  6c 6f 63 6b 25 21 34 3d  |gn)....block%!4=|
00001600  6d 61 69 6e 5f 68 61 6e  64 6c 65 25 0d 08 f2 23  |main_handle%...#|
00001610  62 6c 6f 63 6b 25 21 38  3d 78 63 6f 6f 72 64 28  |block%!8=xcoord(|
00001620  70 69 65 63 65 6e 29 2d  28 67 72 78 2f 32 29 0d  |piecen)-(grx/2).|
00001630  08 fc 1b 62 6c 6f 63 6b  25 21 31 32 3d 79 63 6f  |...block%!12=yco|
00001640  6f 72 64 28 72 6f 77 29  2b 34 0d 09 06 1a 62 6c  |ord(row)+4....bl|
00001650  6f 63 6b 25 21 31 36 3d  62 6c 6f 63 6b 25 21 38  |ock%!16=block%!8|
00001660  2b 67 72 78 0d 09 10 1b  62 6c 6f 63 6b 25 21 32  |+grx....block%!2|
00001670  30 3d 62 6c 6f 63 6b 25  21 31 32 2b 67 72 79 0d  |0=block%!12+gry.|
00001680  09 1a 13 62 6c 6f 63 6b  25 21 32 34 3d 26 33 30  |...block%!24=&30|
00001690  31 41 0d 09 24 22 24 28  62 6c 6f 63 6b 25 2b 32  |1A..$"$(block%+2|
000016a0  38 29 3d 22 73 71 75 61  72 65 22 2b c3 70 69 65  |8)="square"+.pie|
000016b0  63 65 67 6e 0d 09 2e 21  c8 99 22 57 69 6d 70 5f  |cegn...!.."Wimp_|
000016c0  43 72 65 61 74 65 49 63  6f 6e 22 2c 2c 62 6c 6f  |CreateIcon",,blo|
000016d0  63 6b 25 2b 34 0d 09 38  4c c8 99 22 57 69 6d 70  |ck%+4..8L.."Wimp|
000016e0  5f 46 6f 72 63 65 52 65  64 72 61 77 22 2c 6d 61  |_ForceRedraw",ma|
000016f0  69 6e 5f 68 61 6e 64 6c  65 25 2c 62 6c 6f 63 6b  |in_handle%,block|
00001700  25 21 38 2c 62 6c 6f 63  6b 25 21 31 32 2c 62 6c  |%!8,block%!12,bl|
00001710  6f 63 6b 25 21 31 36 2c  62 6c 6f 63 6b 25 21 32  |ock%!16,block%!2|
00001720  30 0d 09 42 05 cd 0d 09  4c 05 e1 0d 09 56 05 20  |0..B....L....V. |
00001730  0d 09 60 21 dd f2 73 65  74 70 69 65 63 65 66 6c  |..`!..setpiecefl|
00001740  61 67 73 28 70 69 65 63  65 6e 2c 66 6c 61 67 73  |ags(piecen,flags|
00001750  29 0d 09 6a 2e f2 61 6c  74 65 72 49 63 6f 6e 28  |)..j..alterIcon(|
00001760  6d 61 69 6e 5f 68 61 6e  64 6c 65 25 2c 70 69 65  |main_handle%,pie|
00001770  63 65 6e 2c 22 22 2c 66  6c 61 67 73 2c 31 29 0d  |cen,"",flags,1).|
00001780  09 74 05 e1 0d 09 7e 05  20 0d 09 88 15 dd f2 6c  |.t....~. ......l|
00001790  6f 61 64 28 6c 6f 61 64  6e 61 6d 65 24 29 0d 09  |oad(loadname$)..|
000017a0  92 0c 69 6e 6c 6f 61 64  3d b9 0d 09 9c 14 c8 99  |..inload=.......|
000017b0  22 48 6f 75 72 67 6c 61  73 73 5f 4f 6e 22 0d 09  |"Hourglass_On"..|
000017c0  a6 11 41 25 3d 8e 6c 6f  61 64 6e 61 6d 65 24 0d  |..A%=.loadname$.|
000017d0  09 b0 12 64 69 6d 65 6e  73 69 6f 6e 3d 9a 23 41  |...dimension=.#A|
000017e0  25 0d 09 ba 0c 47 6f 49  3d 9a 23 41 25 0d 09 c4  |%....GoI=.#A%...|
000017f0  0e 50 6c 79 72 31 3d 9a  23 41 25 0d 09 ce 0e 50  |.Plyr1=.#A%....P|
00001800  6c 79 72 32 3d 9a 23 41  25 0d 09 d8 0f 6c 65 76  |lyr2=.#A%....lev|
00001810  65 6c 25 3d 9a 23 41 25  0d 09 e2 0c 67 72 6c 64  |el%=.#A%....grld|
00001820  24 3d 22 22 0d 09 ec 0d  e3 20 67 3d 30 20 b8 20  |$=""..... g=0 . |
00001830  39 0d 09 f6 12 67 72 6c  64 24 2b 3d bd 28 9a 23  |9....grld$+=.(.#|
00001840  41 25 29 0d 0a 00 05 ed  0d 0a 0a 11 67 3d a7 67  |A%).........g=.g|
00001850  72 6c 64 24 2c 22 2e 22  29 0d 0a 14 1d e7 20 67  |rld$,".")..... g|
00001860  3e 30 20 8c 20 67 72 6c  64 24 3d c0 67 72 6c 64  |>0 . grld$=.grld|
00001870  24 2c 67 2d 31 29 0d 0a  1e 0c 70 6f 73 3d 9a 23  |$,g-1)....pos=.#|
00001880  41 25 0d 0a 28 16 e3 20  70 3d 30 20 b8 20 28 70  |A%..(.. p=0 . (p|
00001890  6f 73 2a 34 34 29 2d 31  0d 0a 32 10 73 74 6f 72  |os*44)-1..2.stor|
000018a0  65 3f 70 3d 9a 23 41 25  0d 0a 3c 05 ed 0d 0a 46  |e?p=.#A%..<....F|
000018b0  08 d9 23 41 25 0d 0a 50  17 f2 73 65 74 67 72 61  |..#A%..P..setgra|
000018c0  70 68 69 63 73 28 67 72  6c 64 24 29 0d 0a 5a 32  |phics(grld$)..Z2|
000018d0  f2 61 6c 74 65 72 49 63  6f 6e 28 70 6c 61 79 65  |.alterIcon(playe|
000018e0  72 73 5f 68 61 6e 64 6c  65 25 2c 31 38 2c 22 23  |rs_handle%,18,"#|
000018f0  22 2b c3 6c 65 76 65 6c  25 2c 30 2c 31 29 0d 0a  |"+.level%,0,1)..|
00001900  64 55 e7 20 69 6e 73 74  65 70 3d b9 20 8c 20 73  |dU. instep=. . s|
00001910  70 6f 73 3d 70 6f 73 2d  31 3a f2 63 6c 69 63 6b  |pos=pos-1:.click|
00001920  28 34 2c 73 74 65 70 74  68 72 75 5f 68 61 6e 64  |(4,stepthru_hand|
00001930  6c 65 25 2c 34 29 3a f2  63 6c 69 63 6b 28 34 2c  |le%,4):.click(4,|
00001940  73 74 65 70 74 68 72 75  5f 68 61 6e 64 6c 65 25  |stepthru_handle%|
00001950  2c 32 29 0d 0a 6e 46 e7  20 66 69 72 73 74 6c 6f  |,2)..nF. firstlo|
00001960  61 64 3d a3 20 8c 20 62  64 69 6d 65 6e 3d 64 69  |ad=. . bdimen=di|
00001970  6d 65 6e 73 69 6f 6e 3a  64 69 6d 65 6e 73 69 6f  |mension:dimensio|
00001980  6e 3d 30 3a f2 73 65 74  64 69 6d 65 6e 73 69 6f  |n=0:.setdimensio|
00001990  6e 28 62 64 69 6d 65 6e  29 0d 0a 78 0d e7 20 47  |n(bdimen)..x.. G|
000019a0  6f 49 3e 32 20 8c 0d 0a  82 0c 47 6f 3d 47 6f 49  |oI>2 .....Go=GoI|
000019b0  2d 32 0d 0a 8c 1a e7 20  47 6f 3d 31 20 8c 20 4f  |-2..... Go=1 . O|
000019c0  67 6f 3d 32 20 8b 20 4f  67 6f 3d 31 0d 0a 96 0c  |go=2 . Ogo=1....|
000019d0  f2 63 6f 6e 63 65 64 65  0d 0a a0 05 cc 0d 0a aa  |.concede........|
000019e0  0a 47 6f 3d 47 6f 49 0d  0a b4 1a e7 20 47 6f 3d  |.Go=GoI..... Go=|
000019f0  31 20 8c 20 4f 67 6f 3d  32 20 8b 20 4f 67 6f 3d  |1 . Ogo=2 . Ogo=|
00001a00  31 0d 0a be 05 cd 0d 0a  c8 55 e7 20 66 69 72 73  |1........U. firs|
00001a10  74 6c 6f 61 64 3d a3 20  8c 20 66 69 6c 65 6e 61  |tload=. . filena|
00001a20  6d 65 24 3d 6c 6f 61 64  6e 61 6d 65 24 3a f2 61  |me$=loadname$:.a|
00001a30  6c 74 65 72 49 63 6f 6e  28 73 61 76 65 5f 68 61  |lterIcon(save_ha|
00001a40  6e 64 6c 65 25 2c 31 30  2c 22 21 22 2b 66 69 6c  |ndle%,10,"!"+fil|
00001a50  65 6e 61 6d 65 24 2c 30  2c 31 29 0d 0a d2 15 c8  |ename$,0,1).....|
00001a60  99 22 48 6f 75 72 67 6c  61 73 73 5f 4f 66 66 22  |."Hourglass_Off"|
00001a70  0d 0a dc 0c 69 6e 6c 6f  61 64 3d a3 0d 0a e6 05  |....inload=.....|
00001a80  e1 0d 0a f0 05 20 0d 0a  fa 1d dd f2 73 65 74 64  |..... ......setd|
00001a90  69 6d 65 6e 73 69 6f 6e  28 6e 65 77 64 69 6d 65  |imension(newdime|
00001aa0  6e 73 29 0d 0b 04 1d e7  20 64 69 6d 65 6e 73 69  |ns)..... dimensi|
00001ab0  6f 6e 3d 6e 65 77 64 69  6d 65 6e 73 20 8c 20 e1  |on=newdimens . .|
00001ac0  0d 0b 0e 38 21 62 6c 6f  63 6b 25 3d 6d 61 69 6e  |...8!block%=main|
00001ad0  5f 68 61 6e 64 6c 65 25  3a c8 99 22 57 69 6d 70  |_handle%:.."Wimp|
00001ae0  5f 47 65 74 57 69 6e 64  6f 77 53 74 61 74 65 22  |_GetWindowState"|
00001af0  2c 2c 62 6c 6f 63 6b 25  0d 0b 18 15 69 6e 66 72  |,,block%....infr|
00001b00  6f 6e 74 3d 62 6c 6f 63  6b 25 21 32 38 0d 0b 22  |ont=block%!28.."|
00001b10  17 64 69 6d 65 6e 73 69  6f 6e 3d 6e 65 77 64 69  |.dimension=newdi|
00001b20  6d 65 6e 73 0d 0b 2c 18  21 62 6c 6f 63 6b 25 3d  |mens..,.!block%=|
00001b30  6d 61 69 6e 5f 68 61 6e  64 6c 65 25 0d 0b 36 21  |main_handle%..6!|
00001b40  c8 99 22 57 69 6d 70 5f  44 65 6c 65 74 65 57 69  |.."Wimp_DeleteWi|
00001b50  6e 64 6f 77 22 2c 2c 62  6c 6f 63 6b 25 0d 0b 40  |ndow",,block%..@|
00001b60  13 e7 20 64 69 6d 65 6e  73 69 6f 6e 3d 32 20 8c  |.. dimension=2 .|
00001b70  0d 0b 4a 30 c8 99 22 57  69 6d 70 5f 43 72 65 61  |..J0.."Wimp_Crea|
00001b80  74 65 57 69 6e 64 6f 77  22 2c 2c 6d 61 69 6e 32  |teWindow",,main2|
00001b90  25 20 b8 20 6d 61 69 6e  5f 68 61 6e 64 6c 65 25  |% . main_handle%|
00001ba0  0d 0b 54 0b f2 76 61 72  73 32 64 0d 0b 5e 1d 64  |..T..vars2d..^.d|
00001bb0  69 6d 65 6e 6d 21 32 38  3d 31 3a 64 69 6d 65 6e  |imenm!28=1:dimen|
00001bc0  6d 21 35 32 3d 26 38 30  0d 0b 68 05 cc 0d 0b 72  |m!52=&80..h....r|
00001bd0  30 c8 99 22 57 69 6d 70  5f 43 72 65 61 74 65 57  |0.."Wimp_CreateW|
00001be0  69 6e 64 6f 77 22 2c 2c  6d 61 69 6e 33 25 20 b8  |indow",,main3% .|
00001bf0  20 6d 61 69 6e 5f 68 61  6e 64 6c 65 25 0d 0b 7c  | main_handle%..||
00001c00  0b f2 76 61 72 73 33 64  0d 0b 86 1d 64 69 6d 65  |..vars3d....dime|
00001c10  6e 6d 21 32 38 3d 30 3a  64 69 6d 65 6e 6d 21 35  |nm!28=0:dimenm!5|
00001c20  32 3d 26 38 31 0d 0b 90  05 cd 0d 0b 9a 0b 69 6e  |2=&81.........in|
00001c30  64 69 6d 3d b9 0d 0b a4  13 f2 72 65 73 74 6f 72  |dim=......restor|
00001c40  65 28 70 6f 73 2d 31 29  0d 0b ae 0b 69 6e 64 69  |e(pos-1)....indi|
00001c50  6d 3d a3 0d 0b b8 31 e7  20 50 6c 79 72 31 3d 30  |m=....1. Plyr1=0|
00001c60  20 8c 20 4d 50 6c 79 72  31 24 3d 22 55 73 65 72  | . MPlyr1$="User|
00001c70  22 20 8b 20 4d 50 6c 79  72 31 24 3d 22 41 72 63  |" . MPlyr1$="Arc|
00001c80  68 69 65 22 0d 0b c2 31  e7 20 50 6c 79 72 32 3d  |hie"...1. Plyr2=|
00001c90  30 20 8c 20 4d 50 6c 79  72 32 24 3d 22 55 73 65  |0 . MPlyr2$="Use|
00001ca0  72 22 20 8b 20 4d 50 6c  79 72 32 24 3d 22 41 72  |r" . MPlyr2$="Ar|
00001cb0  63 68 69 65 22 0d 0b cc  35 f2 61 6c 74 65 72 49  |chie"...5.alterI|
00001cc0  63 6f 6e 28 6d 61 69 6e  5f 68 61 6e 64 6c 65 25  |con(main_handle%|
00001cd0  2c 6d 70 6c 61 79 65 72  31 2c 22 23 22 2b 4d 50  |,mplayer1,"#"+MP|
00001ce0  6c 79 72 31 24 2c 30 2c  31 29 0d 0b d6 31 f2 61  |lyr1$,0,1)...1.a|
00001cf0  6c 74 65 72 49 63 6f 6e  28 70 6c 61 79 65 72 73  |lterIcon(players|
00001d00  5f 68 61 6e 64 6c 65 25  2c 33 2c 22 23 22 2b 4d  |_handle%,3,"#"+M|
00001d10  50 6c 79 72 31 24 2c 30  2c 31 29 0d 0b e0 35 f2  |Plyr1$,0,1)...5.|
00001d20  61 6c 74 65 72 49 63 6f  6e 28 6d 61 69 6e 5f 68  |alterIcon(main_h|
00001d30  61 6e 64 6c 65 25 2c 6d  70 6c 61 79 65 72 32 2c  |andle%,mplayer2,|
00001d40  22 23 22 2b 4d 50 6c 79  72 32 24 2c 30 2c 31 29  |"#"+MPlyr2$,0,1)|
00001d50  0d 0b ea 31 f2 61 6c 74  65 72 49 63 6f 6e 28 70  |...1.alterIcon(p|
00001d60  6c 61 79 65 72 73 5f 68  61 6e 64 6c 65 25 2c 37  |layers_handle%,7|
00001d70  2c 22 23 22 2b 4d 50 6c  79 72 32 24 2c 30 2c 31  |,"#"+MPlyr2$,0,1|
00001d80  29 0d 0b f4 2b e7 20 46  69 72 73 74 3c 3e 2d 31  |)...+. First<>-1|
00001d90  20 8c 20 f2 73 65 74 70  69 65 63 65 66 6c 61 67  | . .setpieceflag|
00001da0  73 28 46 69 72 73 74 2c  72 65 64 29 0d 0b fe 0e  |s(First,red)....|
00001db0  e7 20 6e 69 6e 74 3e 30  20 8c 0d 0c 08 0e e3 20  |. nint>0 ...... |
00001dc0  69 3d 31 b8 6e 69 6e 74  0d 0c 12 20 f2 73 65 74  |i=1.nint... .set|
00001dd0  70 69 65 63 65 66 6c 61  67 73 28 69 6e 74 28 69  |pieceflags(int(i|
00001de0  29 2c 67 72 65 65 6e 29  0d 0c 1c 05 ed 0d 0c 26  |),green).......&|
00001df0  05 cd 0d 0c 30 11 f2 73  65 74 70 6c 79 72 6e 61  |....0..setplyrna|
00001e00  6d 65 73 0d 0c 3a 19 f2  63 6f 75 6e 74 6d 65 6e  |mes..:..countmen|
00001e10  3a f2 63 68 65 63 6b 69  66 77 6f 6e 0d 0c 44 17  |:.checkifwon..D.|
00001e20  e7 20 63 6f 6e 63 65 64  65 64 20 f2 63 6f 6e 63  |. conceded .conc|
00001e30  65 64 65 0d 0c 4e 10 e7  20 6d 61 69 6e 6f 70 65  |ede..N.. mainope|
00001e40  6e 20 8c 0d 0c 58 18 21  62 6c 6f 63 6b 25 3d 6d  |n ...X.!block%=m|
00001e50  61 69 6e 5f 68 61 6e 64  6c 65 25 0d 0c 62 23 c8  |ain_handle%..b#.|
00001e60  99 22 57 69 6d 70 5f 47  65 74 57 69 6e 64 6f 77  |."Wimp_GetWindow|
00001e70  53 74 61 74 65 22 2c 2c  62 6c 6f 63 6b 25 0d 0c  |State",,block%..|
00001e80  6c 15 62 6c 6f 63 6b 25  21 32 38 3d 69 6e 66 72  |l.block%!28=infr|
00001e90  6f 6e 74 0d 0c 76 1f c8  99 22 57 69 6d 70 5f 4f  |ont..v..."Wimp_O|
00001ea0  70 65 6e 57 69 6e 64 6f  77 22 2c 2c 62 6c 6f 63  |penWindow",,bloc|
00001eb0  6b 25 0d 0c 80 05 cd 0d  0c 8a 05 e1 0d 0c 94 05  |k%..............|
00001ec0  20 0d 0c 9e 19 dd f2 6f  70 65 6e 77 69 6e 64 6f  | ......openwindo|
00001ed0  77 28 68 61 6e 64 6c 65  25 29 0d 0c a8 27 e7 20  |w(handle%)...'. |
00001ee0  68 61 6e 64 6c 65 25 3d  6d 61 69 6e 5f 68 61 6e  |handle%=main_han|
00001ef0  64 6c 65 25 20 8c 20 6d  61 69 6e 6f 70 65 6e 3d  |dle% . mainopen=|
00001f00  b9 0d 0c b2 13 21 62 6c  6f 63 6b 25 3d 68 61 6e  |.....!block%=han|
00001f10  64 6c 65 25 0d 0c bc 23  c8 99 22 57 69 6d 70 5f  |dle%...#.."Wimp_|
00001f20  47 65 74 57 69 6e 64 6f  77 53 74 61 74 65 22 2c  |GetWindowState",|
00001f30  2c 62 6c 6f 63 6b 25 0d  0c c6 1f c8 99 22 57 69  |,block%......"Wi|
00001f40  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
00001f50  62 6c 6f 63 6b 25 0d 0c  d0 05 e1 0d 0c da 05 20  |block%......... |
00001f60  0d 0c e4 19 dd f2 73 65  74 67 6f 69 63 6f 6e 28  |......setgoicon(|
00001f70  74 68 69 6e 6b 69 6e 67  29 0d 0c ee 3c e7 20 70  |thinking)...<. p|
00001f80  6c 61 79 69 6e 67 25 3d  a3 20 8c 20 f2 61 6c 74  |laying%=. . .alt|
00001f90  65 72 49 63 6f 6e 28 6d  61 69 6e 5f 68 61 6e 64  |erIcon(main_hand|
00001fa0  6c 65 25 2c 67 6f 69 63  6f 6e 2c 22 23 22 2c 30  |le%,goicon,"#",0|
00001fb0  2c 31 29 3a e1 0d 0c f8  10 e7 20 74 68 69 6e 6b  |,1):...... think|
00001fc0  69 6e 67 20 8c 0d 0d 02  20 e7 20 47 6f 3d 31 20  |ing .... . Go=1 |
00001fd0  80 20 50 6c 79 72 31 3d  30 20 8c 20 69 63 24 3d  |. Plyr1=0 . ic$=|
00001fe0  22 63 6d 33 22 0d 0d 0c  20 e7 20 47 6f 3d 31 20  |"cm3"... . Go=1 |
00001ff0  80 20 50 6c 79 72 31 3d  31 20 8c 20 69 63 24 3d  |. Plyr1=1 . ic$=|
00002000  22 63 6d 31 22 0d 0d 16  20 e7 20 47 6f 3d 32 20  |"cm1"... . Go=2 |
00002010  80 20 50 6c 79 72 32 3d  30 20 8c 20 69 63 24 3d  |. Plyr2=0 . ic$=|
00002020  22 63 6d 33 22 0d 0d 20  20 e7 20 47 6f 3d 32 20  |"cm3"..  . Go=2 |
00002030  80 20 50 6c 79 72 32 3d  31 20 8c 20 69 63 24 3d  |. Plyr2=1 . ic$=|
00002040  22 63 6d 31 22 0d 0d 2a  05 cd 0d 0d 34 12 e7 20  |"cm1"..*....4.. |
00002050  74 68 69 6e 6b 69 6e 67  3d a3 20 8c 0d 0d 3e 20  |thinking=. ...> |
00002060  e7 20 47 6f 3d 31 20 80  20 50 6c 79 72 31 3d 30  |. Go=1 . Plyr1=0|
00002070  20 8c 20 69 63 24 3d 22  63 6d 34 22 0d 0d 48 20  | . ic$="cm4"..H |
00002080  e7 20 47 6f 3d 31 20 80  20 50 6c 79 72 31 3d 31  |. Go=1 . Plyr1=1|
00002090  20 8c 20 69 63 24 3d 22  63 6d 32 22 0d 0d 52 20  | . ic$="cm2"..R |
000020a0  e7 20 47 6f 3d 32 20 80  20 50 6c 79 72 32 3d 30  |. Go=2 . Plyr2=0|
000020b0  20 8c 20 69 63 24 3d 22  63 6d 34 22 0d 0d 5c 20  | . ic$="cm4"..\ |
000020c0  e7 20 47 6f 3d 32 20 80  20 50 6c 79 72 32 3d 31  |. Go=2 . Plyr2=1|
000020d0  20 8c 20 69 63 24 3d 22  63 6d 32 22 0d 0d 66 05  | . ic$="cm2"..f.|
000020e0  cd 0d 0d 70 2f f2 61 6c  74 65 72 49 63 6f 6e 28  |...p/.alterIcon(|
000020f0  6d 61 69 6e 5f 68 61 6e  64 6c 65 25 2c 67 6f 69  |main_handle%,goi|
00002100  63 6f 6e 2c 22 23 22 2b  69 63 24 2c 30 2c 31 29  |con,"#"+ic$,0,1)|
00002110  0d 0d 7a 05 e1 0d 0d 84  05 20 0d 0d 8e 18 dd f2  |..z...... ......|
00002120  73 65 74 67 72 61 70 68  69 63 73 28 67 72 6c 64  |setgraphics(grld|
00002130  24 29 0d 0d 98 0b 6c 67  72 6c 64 3d 30 0d 0d a2  |$)....lgrld=0...|
00002140  14 e3 20 67 3d 31 20 b8  20 6e 67 72 66 69 6c 65  |.. g=1 . ngrfile|
00002150  73 0d 0d ac 21 e7 20 67  72 61 70 68 69 63 24 28  |s...!. graphic$(|
00002160  67 29 3d 67 72 6c 64 24  20 8c 20 6c 67 72 6c 64  |g)=grld$ . lgrld|
00002170  3d 67 0d 0d b6 05 ed 0d  0d c0 17 f4 20 2a 2a 2a  |=g.......... ***|
00002180  2a 20 6c 67 72 6c 64 3d  32 20 2a 2a 2a 2a 0d 0d  |* lgrld=2 ****..|
00002190  ca 14 f2 70 61 6e 65 6d  6f 76 65 28 6c 67 72 6c  |...panemove(lgrl|
000021a0  64 29 0d 0d d4 22 f2 63  6c 69 63 6b 28 34 2c 70  |d)...".click(4,p|
000021b0  61 6e 65 5f 68 61 6e 64  6c 65 25 2c 6c 67 72 6c  |ane_handle%,lgrl|
000021c0  64 2d 31 29 0d 0d de 20  f2 63 6c 69 63 6b 28 34  |d-1)... .click(4|
000021d0  2c 67 72 61 70 68 69 63  73 5f 68 61 6e 64 6c 65  |,graphics_handle|
000021e0  25 2c 36 29 0d 0d e8 05  e1 0d 0d f2 05 20 0d 0d  |%,6)......... ..|
000021f0  fc 16 dd f2 67 72 63 6c  69 63 6b 65 64 28 69 63  |....grclicked(ic|
00002200  6f 6e 25 29 0d 0e 06 21  e7 20 69 63 6f 6e 25 3e  |on%)...!. icon%>|
00002210  2d 31 20 80 20 69 63 6f  6e 25 3c 6e 67 72 66 69  |-1 . icon%<ngrfi|
00002220  6c 65 73 20 8c 0d 0e 10  37 f2 61 6c 74 65 72 49  |les ....7.alterI|
00002230  63 6f 6e 28 70 61 6e 65  5f 68 61 6e 64 6c 65 25  |con(pane_handle%|
00002240  2c 67 72 62 6c 61 63 6b  65 64 2d 31 2c 22 22 2c  |,grblacked-1,"",|
00002250  26 31 37 30 30 36 30 33  39 2c 31 29 0d 0e 1a 15  |&17006039,1)....|
00002260  67 72 62 6c 61 63 6b 65  64 3d 69 63 6f 6e 25 2b  |grblacked=icon%+|
00002270  31 0d 0e 24 37 f2 61 6c  74 65 72 49 63 6f 6e 28  |1..$7.alterIcon(|
00002280  70 61 6e 65 5f 68 61 6e  64 6c 65 25 2c 67 72 62  |pane_handle%,grb|
00002290  6c 61 63 6b 65 64 2d 31  2c 22 22 2c 26 37 30 30  |lacked-1,"",&700|
000022a0  30 36 30 33 39 2c 31 29  0d 0e 2e 05 cd 0d 0e 38  |06039,1).......8|
000022b0  05 e1 0d 0e 42 05 20 0d  0e 4c 17 dd f2 70 61 6e  |....B. ..L...pan|
000022c0  65 6d 6f 76 65 28 77 68  65 72 65 74 6f 29 0d 0e  |emove(whereto)..|
000022d0  56 18 21 62 6c 6f 63 6b  25 3d 70 61 6e 65 5f 68  |V.!block%=pane_h|
000022e0  61 6e 64 6c 65 25 0d 0e  60 23 c8 99 22 57 69 6d  |andle%..`#.."Wim|
000022f0  70 5f 47 65 74 57 69 6e  64 6f 77 53 74 61 74 65  |p_GetWindowState|
00002300  22 2c 2c 62 6c 6f 63 6b  25 0d 0e 6a 1c 62 6c 6f  |",,block%..j.blo|
00002310  63 6b 25 21 32 34 3d 34  30 2a 28 77 68 65 72 65  |ck%!24=40*(where|
00002320  74 6f 2d 31 29 0d 0e 74  2c e7 20 69 6e 6c 6f 61  |to-1)..t,. inloa|
00002330  64 3d a3 20 8c 20 c8 99  22 57 69 6d 70 5f 4f 70  |d=. . .."Wimp_Op|
00002340  65 6e 57 69 6e 64 6f 77  22 2c 2c 62 6c 6f 63 6b  |enWindow",,block|
00002350  25 0d 0e 7e 05 e1 0d 0e  88 05 20 0d 0e 92 05 20  |%..~...... .... |
00002360  0d 0e 9c 0f dd f2 6a 75  73 74 6d 6f 76 65 64 0d  |......justmoved.|
00002370  0e a6 24 e7 20 47 6f 3d  31 20 8c 20 47 6f 3d 32  |..$. Go=1 . Go=2|
00002380  3a 4f 67 6f 3d 31 20 8b  20 47 6f 3d 31 3a 4f 67  |:Ogo=1 . Go=1:Og|
00002390  6f 3d 32 0d 0e b0 12 68  75 66 66 28 29 3d 6e 68  |o=2....huff()=nh|
000023a0  75 66 66 28 29 0d 0e ba  10 70 68 75 66 66 3d 6e  |uff()....phuff=n|
000023b0  70 68 75 66 66 0d 0e c4  0a f2 73 74 6f 72 65 0d  |phuff.....store.|
000023c0  0e ce 10 f2 63 68 65 63  6b 69 66 68 75 66 66 0d  |....checkifhuff.|
000023d0  0e d8 1b e7 20 70 6c 61  79 69 6e 67 25 20 8c 20  |.... playing% . |
000023e0  f2 73 65 74 67 6f 74 65  78 74 0d 0e e2 16 46 69  |.setgotext....Fi|
000023f0  72 73 74 3d 2d 31 3a 53  65 63 6f 6e 64 3d 2d 31  |rst=-1:Second=-1|
00002400  0d 0e ec 05 e1 0d 0e f6  05 20 0d 0f 00 22 dd f2  |......... ..."..|
00002410  63 6c 69 63 6b 28 62 75  74 74 6f 6e 25 2c 77 69  |click(button%,wi|
00002420  6e 64 6f 77 25 2c 69 63  6f 6e 25 29 0d 0f 0a 28  |ndow%,icon%)...(|
00002430  e7 20 62 75 74 74 6f 6e  25 3d 32 20 8c 20 f2 6d  |. button%=2 . .m|
00002440  65 6e 75 63 72 65 61 74  65 28 77 69 6e 64 6f 77  |enucreate(window|
00002450  25 29 3a e1 0d 0f 14 38  e7 20 77 69 6e 64 6f 77  |%):....8. window|
00002460  25 3d 2d 32 20 80 20 62  75 74 74 6f 6e 25 3d 34  |%=-2 . button%=4|
00002470  20 8c 20 f2 6f 70 65 6e  77 69 6e 64 6f 77 28 6d  | . .openwindow(m|
00002480  61 69 6e 5f 68 61 6e 64  6c 65 25 29 0d 0f 1e 1c  |ain_handle%)....|
00002490  e7 20 77 69 6e 64 6f 77  25 3d 73 61 76 65 5f 68  |. window%=save_h|
000024a0  61 6e 64 6c 65 25 20 8c  0d 0f 28 1a e7 20 69 63  |andle% ...(.. ic|
000024b0  6f 6e 25 3d 30 20 8c 20  f2 73 74 61 72 74 64 72  |on%=0 . .startdr|
000024c0  61 67 0d 0f 32 0f e7 20  69 63 6f 6e 25 3d 39 20  |ag..2.. icon%=9 |
000024d0  8c 0d 0f 3c 1f e7 20 62  75 74 74 6f 6e 25 3d 31  |...<.. button%=1|
000024e0  20 8c 20 69 63 6f 6e 63  6c 69 63 6b 65 64 3d b9  | . iconclicked=.|
000024f0  0d 0f 46 24 f2 73 61 76  65 28 a4 67 65 74 74 65  |..F$.save(.gette|
00002500  78 74 28 73 61 76 65 5f  68 61 6e 64 6c 65 25 2c  |xt(save_handle%,|
00002510  31 30 29 29 0d 0f 50 11  69 63 6f 6e 63 6c 69 63  |10))..P.iconclic|
00002520  6b 65 64 3d a3 0d 0f 5a  05 cd 0d 0f 64 05 cd 0d  |ked=...Z....d...|
00002530  0f 6e 1c e7 20 77 69 6e  64 6f 77 25 3d 70 61 6e  |.n.. window%=pan|
00002540  65 5f 68 61 6e 64 6c 65  25 20 8c 0d 0f 78 15 f2  |e_handle% ...x..|
00002550  67 72 63 6c 69 63 6b 65  64 28 69 63 6f 6e 25 29  |grclicked(icon%)|
00002560  0d 0f 82 05 cd 0d 0f 8c  20 e7 20 77 69 6e 64 6f  |........ . windo|
00002570  77 25 3d 67 72 61 70 68  69 63 73 5f 68 61 6e 64  |w%=graphics_hand|
00002580  6c 65 25 20 8c 0d 0f 96  0f e7 20 69 63 6f 6e 25  |le% ...... icon%|
00002590  3d 36 20 8c 0d 0f a0 27  e7 20 67 72 62 6c 61 63  |=6 ....'. grblac|
000025a0  6b 65 64 3c 3e 6c 6f 61  64 65 64 20 84 20 66 69  |ked<>loaded . fi|
000025b0  72 73 74 6c 6f 61 64 3d  b9 20 8c 0d 0f aa 13 6c  |rstload=. .....l|
000025c0  67 72 6c 64 3d 67 72 62  6c 61 63 6b 65 64 0d 0f  |grld=grblacked..|
000025d0  b4 3d f2 6c 6f 61 64 67  72 61 70 68 69 63 73 28  |.=.loadgraphics(|
000025e0  22 3c 44 72 61 75 67 68  74 73 24 44 69 72 3e 2e  |"<Draughts$Dir>.|
000025f0  47 72 61 70 68 69 63 73  2e 22 2b 67 72 61 70 68  |Graphics."+graph|
00002600  69 63 24 28 6c 67 72 6c  64 29 29 0d 0f be 05 cd  |ic$(lgrld)).....|
00002610  0d 0f c8 31 e7 20 62 75  74 74 6f 6e 25 3d 34 20  |...1. button%=4 |
00002620  8c 20 21 62 6c 6f 63 6b  25 3d 67 72 61 70 68 69  |. !block%=graphi|
00002630  63 73 5f 68 61 6e 64 6c  65 25 3a f2 63 6c 6f 73  |cs_handle%:.clos|
00002640  65 0d 0f d2 05 cd 0d 0f  dc 05 cd 0d 0f e6 1f e7  |e...............|
00002650  20 77 69 6e 64 6f 77 25  3d 70 6c 61 79 65 72 73  | window%=players|
00002660  5f 68 61 6e 64 6c 65 25  20 8c 0d 0f f0 19 e7 20  |_handle% ...... |
00002670  69 63 6f 6e 25 3d 33 20  84 20 69 63 6f 6e 25 3d  |icon%=3 . icon%=|
00002680  37 20 8c 0d 0f fa 21 e7  20 69 63 6f 6e 25 3d 33  |7 ....!. icon%=3|
00002690  20 8c 20 50 6c 79 72 31  70 3d 50 6c 79 72 31 70  | . Plyr1p=Plyr1p|
000026a0  20 82 20 31 0d 10 04 21  e7 20 69 63 6f 6e 25 3d  | . 1...!. icon%=|
000026b0  37 20 8c 20 50 6c 79 72  32 70 3d 50 6c 79 72 32  |7 . Plyr2p=Plyr2|
000026c0  70 20 82 20 31 0d 10 0e  2a e7 20 50 6c 79 72 31  |p . 1...*. Plyr1|
000026d0  70 3d 30 20 8c 20 50 31  24 3d 22 55 73 65 72 22  |p=0 . P1$="User"|
000026e0  20 8b 20 50 31 24 3d 22  41 72 63 68 69 65 22 0d  | . P1$="Archie".|
000026f0  10 18 2a e7 20 50 6c 79  72 32 70 3d 30 20 8c 20  |..*. Plyr2p=0 . |
00002700  50 32 24 3d 22 55 73 65  72 22 20 8b 20 50 32 24  |P2$="User" . P2$|
00002710  3d 22 41 72 63 68 69 65  22 0d 10 22 0f e7 20 69  |="Archie"..".. i|
00002720  63 6f 6e 25 3d 33 20 8c  0d 10 2c 2d f2 61 6c 74  |con%=3 ...,-.alt|
00002730  65 72 49 63 6f 6e 28 70  6c 61 79 65 72 73 5f 68  |erIcon(players_h|
00002740  61 6e 64 6c 65 25 2c 33  2c 22 23 22 2b 50 31 24  |andle%,3,"#"+P1$|
00002750  2c 30 2c 31 29 0d 10 36  05 cc 0d 10 40 2d f2 61  |,0,1)..6....@-.a|
00002760  6c 74 65 72 49 63 6f 6e  28 70 6c 61 79 65 72 73  |lterIcon(players|
00002770  5f 68 61 6e 64 6c 65 25  2c 37 2c 22 23 22 2b 50  |_handle%,7,"#"+P|
00002780  32 24 2c 30 2c 31 29 0d  10 4a 05 cd 0d 10 54 05  |2$,0,1)..J....T.|
00002790  cd 0d 10 5e 2f e7 20 62  75 74 74 6f 6e 25 3d 31  |...^/. button%=1|
000027a0  20 80 20 69 63 6f 6e 25  3d 31 39 20 8c 20 69 63  | . icon%=19 . ic|
000027b0  6f 6e 25 3d 32 30 3a 62  75 74 74 6f 6e 25 3d 34  |on%=20:button%=4|
000027c0  0d 10 68 2f e7 20 62 75  74 74 6f 6e 25 3d 31 20  |..h/. button%=1 |
000027d0  80 20 69 63 6f 6e 25 3d  32 30 20 8c 20 69 63 6f  |. icon%=20 . ico|
000027e0  6e 25 3d 31 39 3a 62 75  74 74 6f 6e 25 3d 34 0d  |n%=19:button%=4.|
000027f0  10 72 57 e7 20 69 63 6f  6e 25 3d 31 39 20 80 20  |.rW. icon%=19 . |
00002800  6c 65 76 65 6c 70 25 3e  31 20 8c 20 6c 65 76 65  |levelp%>1 . leve|
00002810  6c 70 25 2d 3d 31 3a f2  61 6c 74 65 72 49 63 6f  |lp%-=1:.alterIco|
00002820  6e 28 70 6c 61 79 65 72  73 5f 68 61 6e 64 6c 65  |n(players_handle|
00002830  25 2c 31 38 2c 22 23 22  2b c3 6c 65 76 65 6c 70  |%,18,"#"+.levelp|
00002840  25 2c 30 2c 31 29 0d 10  7c 58 e7 20 69 63 6f 6e  |%,0,1)..|X. icon|
00002850  25 3d 32 30 20 80 20 6c  65 76 65 6c 70 25 3c 6c  |%=20 . levelp%<l|
00002860  64 20 8c 20 6c 65 76 65  6c 70 25 2b 3d 31 3a f2  |d . levelp%+=1:.|
00002870  61 6c 74 65 72 49 63 6f  6e 28 70 6c 61 79 65 72  |alterIcon(player|
00002880  73 5f 68 61 6e 64 6c 65  25 2c 31 38 2c 22 23 22  |s_handle%,18,"#"|
00002890  2b c3 6c 65 76 65 6c 70  25 2c 30 2c 31 29 0d 10  |+.levelp%,0,1)..|
000028a0  86 10 e7 20 69 63 6f 6e  25 3d 32 36 20 8c 0d 10  |... icon%=26 ...|
000028b0  90 12 6c 65 76 65 6c 25  3d 6c 65 76 65 6c 70 25  |..level%=levelp%|
000028c0  0d 10 9a 1d 50 6c 79 72  31 3d 50 6c 79 72 31 70  |....Plyr1=Plyr1p|
000028d0  3a 50 6c 79 72 32 3d 50  6c 79 72 32 70 0d 10 a4  |:Plyr2=Plyr2p...|
000028e0  1f e7 20 47 6f 3d 31 20  80 20 50 6c 79 72 31 3d  |.. Go=1 . Plyr1=|
000028f0  30 20 8c 20 69 6e 63 6f  6d 70 3d a3 0d 10 ae 1f  |0 . incomp=.....|
00002900  e7 20 47 6f 3d 32 20 80  20 50 6c 79 72 32 3d 30  |. Go=2 . Plyr2=0|
00002910  20 8c 20 69 6e 63 6f 6d  70 3d a3 0d 10 b8 29 e7  | . incomp=....).|
00002920  20 50 6c 79 72 31 3d 30  20 8c 20 50 31 24 3d 22  | Plyr1=0 . P1$="|
00002930  55 73 65 72 22 20 8b 20  50 31 24 3d 22 41 72 63  |User" . P1$="Arc|
00002940  68 69 65 22 0d 10 c2 29  e7 20 50 6c 79 72 32 3d  |hie"...). Plyr2=|
00002950  30 20 8c 20 50 32 24 3d  22 55 73 65 72 22 20 8b  |0 . P2$="User" .|
00002960  20 50 32 24 3d 22 41 72  63 68 69 65 22 0d 10 cc  | P2$="Archie"...|
00002970  31 f2 61 6c 74 65 72 49  63 6f 6e 28 6d 61 69 6e  |1.alterIcon(main|
00002980  5f 68 61 6e 64 6c 65 25  2c 6d 70 6c 61 79 65 72  |_handle%,mplayer|
00002990  31 2c 22 23 22 2b 50 31  24 2c 30 2c 31 29 0d 10  |1,"#"+P1$,0,1)..|
000029a0  d6 31 f2 61 6c 74 65 72  49 63 6f 6e 28 6d 61 69  |.1.alterIcon(mai|
000029b0  6e 5f 68 61 6e 64 6c 65  25 2c 6d 70 6c 61 79 65  |n_handle%,mplaye|
000029c0  72 32 2c 22 23 22 2b 50  32 24 2c 30 2c 31 29 0d  |r2,"#"+P2$,0,1).|
000029d0  10 e0 29 e7 20 62 75 74  74 6f 6e 25 3d 34 20 8c  |..). button%=4 .|
000029e0  20 c8 99 22 57 69 6d 70  5f 43 72 65 61 74 65 4d  | .."Wimp_CreateM|
000029f0  65 6e 75 22 2c 2c 2d 31  0d 10 ea 05 cd 0d 10 f4  |enu",,-1........|
00002a00  05 cd 0d 10 fe 2b e7 20  77 69 6e 64 6f 77 25 3d  |.....+. window%=|
00002a10  73 74 65 70 74 68 72 75  5f 68 61 6e 64 6c 65 25  |stepthru_handle%|
00002a20  20 80 20 69 63 6f 6e 25  20 3c 35 20 8c 0d 11 08  | . icon% <5 ....|
00002a30  14 f2 73 74 65 70 74 68  72 75 28 69 63 6f 6e 25  |..stepthru(icon%|
00002a40  29 0d 11 12 05 cd 0d 11  1c 3f e7 20 77 69 6e 64  |)........?. wind|
00002a50  6f 77 25 3d 6d 61 69 6e  5f 68 61 6e 64 6c 65 25  |ow%=main_handle%|
00002a60  20 80 20 70 6c 61 79 69  6e 67 25 3d b9 20 80 20  | . playing%=. . |
00002a70  69 6e 63 6f 6d 70 3d a3  20 80 20 69 6e 73 74 65  |incomp=. . inste|
00002a80  70 3d a3 20 8c 0d 11 26  08 6f 6b 3d a3 0d 11 30  |p=. ...&.ok=...0|
00002a90  23 e7 20 64 69 6d 65 6e  73 69 6f 6e 3d 32 20 80  |#. dimension=2 .|
00002aa0  20 69 63 6f 6e 25 3c 36  34 20 8c 20 6f 6b 3d b9  | icon%<64 . ok=.|
00002ab0  0d 11 3a 24 e7 20 64 69  6d 65 6e 73 69 6f 6e 3d  |..:$. dimension=|
00002ac0  33 20 80 20 69 63 6f 6e  25 3c 31 32 39 20 8c 20  |3 . icon%<129 . |
00002ad0  6f 6b 3d b9 0d 11 44 0a  e7 20 6f 6b 20 8c 0d 11  |ok=...D.. ok ...|
00002ae0  4e 21 e7 20 64 69 6d 65  6e 73 69 6f 6e 3d 33 20  |N!. dimension=3 |
00002af0  8c 20 f2 66 69 6e 64 6f  75 74 77 68 69 63 68 0d  |. .findoutwhich.|
00002b00  11 58 2e e7 20 69 63 6f  6e 25 3c 36 34 20 80 20  |.X.. icon%<64 . |
00002b10  69 63 6f 6e 25 3e 2d 31  20 8c 20 f2 62 6f 61 72  |icon%>-1 . .boar|
00002b20  64 63 6c 69 63 6b 28 69  63 6f 6e 25 29 0d 11 62  |dclick(icon%)..b|
00002b30  05 cd 0d 11 6c 05 cd 0d  11 76 05 e1 0d 11 80 05  |....l....v......|
00002b40  20 0d 11 8a 10 dd f2 73  65 74 75 70 6d 65 6e 75  | ......setupmenu|
00002b50  73 0d 11 94 4d de 20 6d  61 69 6e 6d 20 35 32 30  |s...M. mainm 520|
00002b60  2c 62 61 72 6d 20 35 32  30 2c 6d 69 73 63 6d 20  |,barm 520,miscm |
00002b70  35 32 30 2c 64 69 6d 65  6e 6d 20 35 32 30 2c 68  |520,dimenm 520,h|
00002b80  75 66 66 6d 20 35 32 30  2c 63 61 6e 63 68 6d 20  |uffm 520,canchm |
00002b90  35 32 30 2c 63 61 6e 63  66 6d 20 35 32 30 0d 11  |520,cancfm 520..|
00002ba0  9e 0e 6d 65 6e 75 3d 6d  61 69 6e 6d 0d 11 a8 4d  |..menu=mainm...M|
00002bb0  24 6d 65 6e 75 3d 22 44  72 61 75 67 68 74 73 22  |$menu="Draughts"|
00002bc0  3a 6d 65 6e 75 21 31 32  3d 26 37 30 32 30 37 3a  |:menu!12=&70207:|
00002bd0  6d 65 6e 75 21 31 36 3d  32 30 34 3a 6d 65 6e 75  |menu!16=204:menu|
00002be0  21 32 30 3d 34 34 3a 6d  65 6e 75 21 32 34 3d 30  |!20=44:menu!24=0|
00002bf0  3a 6d 65 6e 75 2b 3d 32  38 0d 11 b2 3b 6d 65 6e  |:menu+=28...;men|
00002c00  75 21 30 3d 30 3a 6d 65  6e 75 21 34 3d 6d 69 73  |u!0=0:menu!4=mis|
00002c10  63 6d 3a 6d 65 6e 75 21  38 3d 26 37 30 30 30 30  |cm:menu!8=&70000|
00002c20  32 31 3a 24 28 6d 65 6e  75 2b 31 32 29 3d 22 4d  |21:$(menu+12)="M|
00002c30  69 73 63 22 0d 11 bc 43  6d 65 6e 75 21 32 34 3d  |isc"...Cmenu!24=|
00002c40  30 3a 6d 65 6e 75 21 32  38 3d 2d 31 3a 6d 65 6e  |0:menu!28=-1:men|
00002c50  75 21 33 32 3d 26 37 30  30 30 30 32 31 3a 24 28  |u!32=&7000021:$(|
00002c60  6d 65 6e 75 2b 33 36 29  3d 22 53 74 65 70 20 74  |menu+36)="Step t|
00002c70  68 72 75 2e 2e 2e 22 0d  11 c6 4b 6d 65 6e 75 21  |hru..."...Kmenu!|
00002c80  34 38 3d 38 3a 6d 65 6e  75 21 35 32 3d 70 6c 61  |48=8:menu!52=pla|
00002c90  79 65 72 73 5f 68 61 6e  64 6c 65 25 3a 6d 65 6e  |yers_handle%:men|
00002ca0  75 21 35 36 3d 26 37 30  30 30 30 32 31 3a 24 28  |u!56=&7000021:$(|
00002cb0  6d 65 6e 75 2b 36 30 29  3d 22 50 6c 61 79 65 72  |menu+60)="Player|
00002cc0  73 22 0d 11 d0 42 6d 65  6e 75 21 37 32 3d 30 3a  |s"...Bmenu!72=0:|
00002cd0  6d 65 6e 75 21 37 36 3d  2d 31 3a 6d 65 6e 75 21  |menu!76=-1:menu!|
00002ce0  38 30 3d 26 37 30 30 30  30 32 31 3a 24 28 6d 65  |80=&7000021:$(me|
00002cf0  6e 75 2b 38 34 29 3d 22  47 72 61 70 68 69 63 73  |nu+84)="Graphics|
00002d00  2e 2e 2e 22 0d 11 da 43  6d 65 6e 75 21 39 36 3d  |..."...Cmenu!96=|
00002d10  32 3a 6d 65 6e 75 21 31  30 30 3d 64 69 6d 65 6e  |2:menu!100=dimen|
00002d20  6d 3a 6d 65 6e 75 21 31  30 34 3d 26 37 30 30 30  |m:menu!104=&7000|
00002d30  30 32 31 3a 24 28 6d 65  6e 75 2b 31 30 38 29 3d  |021:$(menu+108)=|
00002d40  22 42 6f 61 72 64 22 0d  11 e4 42 6d 65 6e 75 21  |"Board"...Bmenu!|
00002d50  31 32 30 3d 30 3a 6d 65  6e 75 21 31 32 34 3d 68  |120=0:menu!124=h|
00002d60  75 66 66 6d 3a 6d 65 6e  75 21 31 32 38 3d 26 37  |uffm:menu!128=&7|
00002d70  30 30 30 30 32 31 3a 24  28 6d 65 6e 75 2b 31 33  |000021:$(menu+13|
00002d80  32 29 3d 22 48 75 66 66  22 0d 11 ee 42 6d 65 6e  |2)="Huff"...Bmen|
00002d90  75 21 31 34 34 3d 30 3a  6d 65 6e 75 21 31 34 38  |u!144=0:menu!148|
00002da0  3d 2d 31 3a 6d 65 6e 75  21 31 35 32 3d 26 37 30  |=-1:menu!152=&70|
00002db0  30 30 30 32 31 3a 24 28  6d 65 6e 75 2b 31 35 36  |00021:$(menu+156|
00002dc0  29 3d 22 43 6f 6e 63 65  64 65 22 0d 11 f8 45 6d  |)="Concede"...Em|
00002dd0  65 6e 75 21 31 36 38 3d  26 38 30 3a 6d 65 6e 75  |enu!168=&80:menu|
00002de0  21 31 37 32 3d 2d 31 3a  6d 65 6e 75 21 31 37 36  |!172=-1:menu!176|
00002df0  3d 26 37 30 30 30 30 32  31 3a 24 28 6d 65 6e 75  |=&7000021:$(menu|
00002e00  2b 31 38 30 29 3d 22 4e  65 77 20 67 61 6d 65 22  |+180)="New game"|
00002e10  0d 12 02 0d 6d 65 6e 75  3d 62 61 72 6d 0d 12 0c  |....menu=barm...|
00002e20  4d 24 6d 65 6e 75 3d 22  44 72 61 75 67 68 74 73  |M$menu="Draughts|
00002e30  22 3a 6d 65 6e 75 21 31  32 3d 26 37 30 32 30 37  |":menu!12=&70207|
00002e40  3a 6d 65 6e 75 21 31 36  3d 31 32 30 3a 6d 65 6e  |:menu!16=120:men|
00002e50  75 21 32 30 3d 34 34 3a  6d 65 6e 75 21 32 34 3d  |u!20=44:menu!24=|
00002e60  30 3a 6d 65 6e 75 2b 3d  32 38 0d 12 16 42 6d 65  |0:menu+=28...Bme|
00002e70  6e 75 21 30 3d 30 3a 6d  65 6e 75 21 34 3d 69 6e  |nu!0=0:menu!4=in|
00002e80  66 6f 5f 68 61 6e 64 6c  65 25 3a 6d 65 6e 75 21  |fo_handle%:menu!|
00002e90  38 3d 26 37 30 30 30 30  32 31 3a 24 28 6d 65 6e  |8=&7000021:$(men|
00002ea0  75 2b 31 32 29 3d 22 49  6e 66 6f 22 0d 12 20 45  |u+12)="Info".. E|
00002eb0  6d 65 6e 75 21 32 34 3d  38 3a 6d 65 6e 75 21 32  |menu!24=8:menu!2|
00002ec0  38 3d 73 61 76 65 5f 68  61 6e 64 6c 65 25 3a 6d  |8=save_handle%:m|
00002ed0  65 6e 75 21 33 32 3d 26  37 30 30 30 30 32 31 3a  |enu!32=&7000021:|
00002ee0  24 28 6d 65 6e 75 2b 33  36 29 3d 22 53 61 76 65  |$(menu+36)="Save|
00002ef0  22 0d 12 2a 3d 6d 65 6e  75 21 34 38 3d 26 38 30  |"..*=menu!48=&80|
00002f00  3a 6d 65 6e 75 21 35 32  3d 2d 31 3a 6d 65 6e 75  |:menu!52=-1:menu|
00002f10  21 35 36 3d 26 37 30 30  30 30 32 31 3a 24 28 6d  |!56=&7000021:$(m|
00002f20  65 6e 75 2b 36 30 29 3d  22 51 75 69 74 22 0d 12  |enu+60)="Quit"..|
00002f30  34 0e 6d 65 6e 75 3d 6d  69 73 63 6d 0d 12 3e 48  |4.menu=miscm..>H|
00002f40  24 6d 65 6e 75 3d 22 4d  69 73 63 22 3a 6d 65 6e  |$menu="Misc":men|
00002f50  75 21 31 32 3d 26 37 30  32 30 37 3a 6d 65 6e 75  |u!12=&70207:menu|
00002f60  21 31 36 3d 39 36 3a 6d  65 6e 75 21 32 30 3d 34  |!16=96:menu!20=4|
00002f70  34 3a 6d 65 6e 75 21 32  34 3d 30 3a 6d 65 6e 75  |4:menu!24=0:menu|
00002f80  2b 3d 32 38 0d 12 48 42  6d 65 6e 75 21 30 3d 30  |+=28..HBmenu!0=0|
00002f90  3a 6d 65 6e 75 21 34 3d  69 6e 66 6f 5f 68 61 6e  |:menu!4=info_han|
00002fa0  64 6c 65 25 3a 6d 65 6e  75 21 38 3d 26 37 30 30  |dle%:menu!8=&700|
00002fb0  30 30 32 31 3a 24 28 6d  65 6e 75 2b 31 32 29 3d  |0021:$(menu+12)=|
00002fc0  22 49 6e 66 6f 22 0d 12  52 47 6d 65 6e 75 21 32  |"Info"..RGmenu!2|
00002fd0  34 3d 26 38 38 3a 6d 65  6e 75 21 32 38 3d 73 61  |4=&88:menu!28=sa|
00002fe0  76 65 5f 68 61 6e 64 6c  65 25 3a 6d 65 6e 75 21  |ve_handle%:menu!|
00002ff0  33 32 3d 26 37 30 30 30  30 32 31 3a 24 28 6d 65  |32=&7000021:$(me|
00003000  6e 75 2b 33 36 29 3d 22  53 61 76 65 22 0d 12 5c  |nu+36)="Save"..\|
00003010  0f 6d 65 6e 75 3d 64 69  6d 65 6e 6d 0d 12 66 4a  |.menu=dimenm..fJ|
00003020  24 6d 65 6e 75 3d 22 42  6f 61 72 64 22 3a 6d 65  |$menu="Board":me|
00003030  6e 75 21 31 32 3d 26 37  30 32 30 37 3a 6d 65 6e  |nu!12=&70207:men|
00003040  75 21 31 36 3d 32 30 38  3a 6d 65 6e 75 21 32 30  |u!16=208:menu!20|
00003050  3d 34 34 3a 6d 65 6e 75  21 32 34 3d 30 3a 6d 65  |=44:menu!24=0:me|
00003060  6e 75 2b 3d 32 38 0d 12  70 40 6d 65 6e 75 21 30  |nu+=28..p@menu!0|
00003070  3d 30 3a 6d 65 6e 75 21  34 3d 2d 31 3a 6d 65 6e  |=0:menu!4=-1:men|
00003080  75 21 38 3d 26 37 30 30  30 30 32 31 3a 24 28 6d  |u!8=&7000021:$(m|
00003090  65 6e 75 2b 31 32 29 3d  22 32 20 64 69 6d 65 6e  |enu+12)="2 dimen|
000030a0  73 69 6f 6e 73 22 0d 12  7a 45 6d 65 6e 75 21 32  |sions"..zEmenu!2|
000030b0  34 3d 26 38 30 3a 6d 65  6e 75 21 32 38 3d 2d 31  |4=&80:menu!28=-1|
000030c0  3a 6d 65 6e 75 21 33 32  3d 26 37 30 30 30 30 32  |:menu!32=&700002|
000030d0  31 3a 24 28 6d 65 6e 75  2b 33 36 29 3d 22 33 20  |1:$(menu+36)="3 |
000030e0  64 69 6d 65 6e 73 69 6f  6e 73 22 0d 12 84 0e 6d  |dimensions"....m|
000030f0  65 6e 75 3d 68 75 66 66  6d 0d 12 8e 49 24 6d 65  |enu=huffm...I$me|
00003100  6e 75 3d 22 48 75 66 66  22 3a 6d 65 6e 75 21 31  |nu="Huff":menu!1|
00003110  32 3d 26 37 30 32 30 37  3a 6d 65 6e 75 21 31 36  |2=&70207:menu!16|
00003120  3d 31 30 30 3a 6d 65 6e  75 21 32 30 3d 34 34 3a  |=100:menu!20=44:|
00003130  6d 65 6e 75 21 32 34 3d  30 3a 6d 65 6e 75 2b 3d  |menu!24=0:menu+=|
00003140  32 38 0d 12 98 38 6d 65  6e 75 21 30 3d 30 3a 6d  |28...8menu!0=0:m|
00003150  65 6e 75 21 34 3d 2d 31  3a 6d 65 6e 75 21 38 3d  |enu!4=-1:menu!8=|
00003160  26 37 30 30 30 30 32 31  3a 24 28 6d 65 6e 75 2b  |&7000021:$(menu+|
00003170  31 32 29 3d 22 48 75 66  66 22 0d 12 a2 3e 6d 65  |12)="Huff"...>me|
00003180  6e 75 21 32 34 3d 26 38  30 3a 6d 65 6e 75 21 32  |nu!24=&80:menu!2|
00003190  38 3d 2d 31 3a 6d 65 6e  75 21 33 32 3d 26 37 30  |8=-1:menu!32=&70|
000031a0  30 30 30 32 31 3a 24 28  6d 65 6e 75 2b 33 36 29  |00021:$(menu+36)|
000031b0  3d 22 46 6f 72 63 65 22  0d 12 ac 0f 6d 65 6e 75  |="Force"....menu|
000031c0  3d 63 61 6e 63 68 6d 0d  12 b6 49 24 6d 65 6e 75  |=canchm...I$menu|
000031d0  3d 22 48 75 66 66 22 3a  6d 65 6e 75 21 31 32 3d  |="Huff":menu!12=|
000031e0  26 37 30 32 30 37 3a 6d  65 6e 75 21 31 36 3d 31  |&70207:menu!16=1|
000031f0  31 32 3a 6d 65 6e 75 21  32 30 3d 34 34 3a 6d 65  |12:menu!20=44:me|
00003200  6e 75 21 32 34 3d 30 3a  6d 65 6e 75 2b 3d 32 38  |nu!24=0:menu+=28|
00003210  0d 12 c0 3c 6d 65 6e 75  21 30 3d 26 38 30 3a 6d  |...<menu!0=&80:m|
00003220  65 6e 75 21 34 3d 2d 31  3a 6d 65 6e 75 21 38 3d  |enu!4=-1:menu!8=|
00003230  26 37 30 30 30 30 32 31  3a 24 28 6d 65 6e 75 2b  |&7000021:$(menu+|
00003240  31 32 29 3d 22 43 61 6e  63 65 6c 22 0d 12 ca 0f  |12)="Cancel"....|
00003250  6d 65 6e 75 3d 63 61 6e  63 66 6d 0d 12 d4 4a 24  |menu=cancfm...J$|
00003260  6d 65 6e 75 3d 22 46 6f  72 63 65 22 3a 6d 65 6e  |menu="Force":men|
00003270  75 21 31 32 3d 26 37 30  32 30 37 3a 6d 65 6e 75  |u!12=&70207:menu|
00003280  21 31 36 3d 31 31 32 3a  6d 65 6e 75 21 32 30 3d  |!16=112:menu!20=|
00003290  34 34 3a 6d 65 6e 75 21  32 34 3d 30 3a 6d 65 6e  |44:menu!24=0:men|
000032a0  75 2b 3d 32 38 0d 12 de  3c 6d 65 6e 75 21 30 3d  |u+=28...<menu!0=|
000032b0  26 38 30 3a 6d 65 6e 75  21 34 3d 2d 31 3a 6d 65  |&80:menu!4=-1:me|
000032c0  6e 75 21 38 3d 26 37 30  30 30 30 32 31 3a 24 28  |nu!8=&7000021:$(|
000032d0  6d 65 6e 75 2b 31 32 29  3d 22 43 61 6e 63 65 6c  |menu+12)="Cancel|
000032e0  22 0d 12 e8 05 e1 0d 12  f2 05 20 0d 12 fc 19 dd  |"......... .....|
000032f0  f2 6d 65 6e 75 63 72 65  61 74 65 28 77 69 6e 64  |.menucreate(wind|
00003300  6f 77 25 29 0d 13 06 12  6d 65 6e 63 72 25 3d 77  |ow%)....mencr%=w|
00003310  69 6e 64 6f 77 25 0d 13  10 2b e7 20 6d 65 6e 63  |indow%...+. menc|
00003320  72 25 3c 3e 2d 32 20 80  20 6d 65 6e 63 72 25 3c  |r%<>-2 . mencr%<|
00003330  3e 6d 61 69 6e 5f 68 61  6e 64 6c 65 25 20 8c 20  |>main_handle% . |
00003340  e1 0d 13 1a 3b e7 20 6d  65 6e 63 72 25 3d 2d 32  |....;. mencr%=-2|
00003350  20 8c 20 c8 99 22 57 69  6d 70 5f 43 72 65 61 74  | . .."Wimp_Creat|
00003360  65 4d 65 6e 75 22 2c 2c  62 61 72 6d 2c 62 6c 6f  |eMenu",,barm,blo|
00003370  63 6b 25 21 30 2d 36 34  2c 32 32 38 0d 13 24 4e  |ck%!0-64,228..$N|
00003380  e7 20 6d 65 6e 63 72 25  3d 6d 61 69 6e 5f 68 61  |. mencr%=main_ha|
00003390  6e 64 6c 65 25 20 8c 20  c8 99 22 57 69 6d 70 5f  |ndle% . .."Wimp_|
000033a0  43 72 65 61 74 65 4d 65  6e 75 22 2c 2c 6d 61 69  |CreateMenu",,mai|
000033b0  6e 6d 2c 62 6c 6f 63 6b  25 21 30 2d 36 34 2c 62  |nm,block%!0-64,b|
000033c0  6c 6f 63 6b 25 21 34 2b  31 36 0d 13 2e 05 e1 0d  |lock%!4+16......|
000033d0  13 38 05 20 0d 13 42 1c  dd a4 67 65 74 74 65 78  |.8. ..B...gettex|
000033e0  74 28 77 69 6e 64 6f 77  25 2c 69 63 6f 6e 25 29  |t(window%,icon%)|
000033f0  0d 13 4c 43 21 62 6c 6f  63 6b 32 25 3d 77 69 6e  |..LC!block2%=win|
00003400  64 6f 77 25 3a 62 6c 6f  63 6b 32 25 21 34 3d 69  |dow%:block2%!4=i|
00003410  63 6f 6e 25 3a c8 99 22  57 69 6d 70 5f 47 65 74  |con%:.."Wimp_Get|
00003420  49 63 6f 6e 53 74 61 74  65 22 2c 2c 62 6c 6f 63  |IconState",,bloc|
00003430  6b 32 25 0d 13 56 40 e7  20 28 62 6c 6f 63 6b 32  |k2%..V@. (block2|
00003440  25 21 32 34 20 80 20 32  35 36 29 3d 32 35 36 20  |%!24 . 256)=256 |
00003450  8c 20 3a 3d 24 28 62 6c  6f 63 6b 32 25 21 32 38  |. :=$(block2%!28|
00003460  29 20 8b 20 3a 3d 24 28  62 6c 6f 63 6b 32 25 2b  |) . :=$(block2%+|
00003470  32 38 29 0d 13 60 05 20  0d 13 6a 17 dd f2 73 6c  |28)..`. ..j...sl|
00003480  6f 74 73 69 7a 65 28 6e  65 77 73 6c 6f 74 29 0d  |otsize(newslot).|
00003490  13 74 28 c8 99 22 57 69  6d 70 5f 53 6c 6f 74 53  |.t(.."Wimp_SlotS|
000034a0  69 7a 65 22 2c 6e 65 77  73 6c 6f 74 2c 2d 31 20  |ize",newslot,-1 |
000034b0  b8 20 6e 73 6c 6f 74 0d  13 7e 05 e1 0d 13 88 05  |. nslot..~......|
000034c0  20 0d 13 92 15 dd f2 73  74 65 70 74 68 72 75 28  | ......stepthru(|
000034d0  69 63 6f 6e 25 29 0d 13  9c 2b e7 20 69 63 6f 6e  |icon%)...+. icon|
000034e0  25 3d 30 20 8c 20 73 74  65 70 70 6f 73 3d 30 3a  |%=0 . steppos=0:|
000034f0  f2 72 65 73 74 6f 72 65  28 73 74 65 70 70 6f 73  |.restore(steppos|
00003500  29 0d 13 a6 2e e7 20 69  63 6f 6e 25 3d 34 20 8c  |)..... icon%=4 .|
00003510  20 73 74 65 70 70 6f 73  3d 73 70 6f 73 3a f2 72  | steppos=spos:.r|
00003520  65 73 74 6f 72 65 28 73  74 65 70 70 6f 73 29 0d  |estore(steppos).|
00003530  13 b0 38 e7 20 69 63 6f  6e 25 3d 31 20 80 20 73  |..8. icon%=1 . s|
00003540  74 65 70 70 6f 73 3e 30  20 8c 20 73 74 65 70 70  |teppos>0 . stepp|
00003550  6f 73 2d 3d 31 3a f2 72  65 73 74 6f 72 65 28 73  |os-=1:.restore(s|
00003560  74 65 70 70 6f 73 29 0d  13 ba 3b e7 20 69 63 6f  |teppos)...;. ico|
00003570  6e 25 3d 33 20 80 20 73  74 65 70 70 6f 73 3c 73  |n%=3 . steppos<s|
00003580  70 6f 73 20 8c 20 73 74  65 70 70 6f 73 2b 3d 31  |pos . steppos+=1|
00003590  3a f2 72 65 73 74 6f 72  65 28 73 74 65 70 70 6f  |:.restore(steppo|
000035a0  73 29 0d 13 c4 0f e7 20  69 63 6f 6e 25 3d 32 20  |s)..... icon%=2 |
000035b0  8c 0d 13 ce 23 21 62 6c  6f 63 6b 25 3d 73 74 65  |....#!block%=ste|
000035c0  70 74 68 72 75 5f 68 61  6e 64 6c 65 25 3a f2 63  |pthru_handle%:.c|
000035d0  6c 6f 73 65 0d 13 d8 17  69 6e 73 74 65 70 3d a3  |lose....instep=.|
000035e0  3a 70 6c 61 79 69 6e 67  25 3d b9 0d 13 e2 0e 63  |:playing%=.....c|
000035f0  6f 6e 63 65 64 65 64 3d  a3 0d 13 ec 22 f2 72 65  |onceded=....".re|
00003600  73 74 6f 72 65 28 73 74  65 70 70 6f 73 29 3a f2  |store(steppos):.|
00003610  63 68 65 63 6b 69 66 68  75 66 66 0d 13 f6 05 cd  |checkifhuff.....|
00003620  0d 14 00 05 e1 0d 14 0a  05 20 0d 14 14 12 dd f2  |......... ......|
00003630  66 69 6e 64 6f 75 74 77  68 69 63 68 0d 14 1e 2c  |findoutwhich...,|
00003640  e7 20 69 63 6f 6e 25 3d  36 34 20 80 20 a4 63 6c  |. icon%=64 . .cl|
00003650  69 63 6b 73 71 75 61 72  65 20 8c 20 f2 66 69 6e  |icksquare . .fin|
00003660  64 6f 75 74 72 65 61 6c  0d 14 28 2c e7 20 69 63  |doutreal..(,. ic|
00003670  6f 6e 25 3e 36 34 20 80  20 a4 63 6c 69 63 6b 73  |on%>64 . .clicks|
00003680  71 75 61 72 65 20 8c 20  f2 66 69 6e 64 6f 75 74  |quare . .findout|
00003690  72 65 61 6c 0d 14 32 1a  e7 20 69 63 6f 6e 25 3e  |real..2.. icon%>|
000036a0  36 34 20 8c 20 69 63 6f  6e 25 2d 3d 36 35 0d 14  |64 . icon%-=65..|
000036b0  3c 05 e1 0d 14 46 05 20  0d 14 50 11 dd a4 63 6c  |<....F. ..P...cl|
000036c0  69 63 6b 73 71 75 61 72  65 0d 14 5a 23 c8 99 22  |icksquare..Z#.."|
000036d0  57 69 6d 70 5f 47 65 74  50 6f 69 6e 74 65 72 49  |Wimp_GetPointerI|
000036e0  6e 66 6f 22 2c 2c 62 6c  6f 63 6b 25 0d 14 64 1e  |nfo",,block%..d.|
000036f0  6d 78 63 6f 3d 21 62 6c  6f 63 6b 25 3a 6d 79 63  |mxco=!block%:myc|
00003700  6f 3d 62 6c 6f 63 6b 25  21 34 0d 14 6e 29 c8 99  |o=block%!4..n)..|
00003710  22 4f 53 5f 52 65 61 64  4d 6f 64 65 56 61 72 69  |"OS_ReadModeVari|
00003720  61 62 6c 65 22 2c 2d 31  2c 33 20 b8 20 2c 2c 63  |able",-1,3 . ,,c|
00003730  6f 6c 6c 0d 14 78 21 e7  20 b0 6d 78 63 6f 2c 6d  |oll..x!. .mxco,m|
00003740  79 63 6f 29 3d a4 6d 6f  64 65 63 6f 6c 31 20 8c  |yco)=.modecol1 .|
00003750  20 3a 3d b9 0d 14 82 21  e7 20 b0 6d 78 63 6f 2c  | :=....!. .mxco,|
00003760  6d 79 63 6f 29 3d a4 6d  6f 64 65 63 6f 6c 32 20  |myco)=.modecol2 |
00003770  8c 20 3a 3d b9 0d 14 8c  21 e7 20 b0 6d 78 63 6f  |. :=....!. .mxco|
00003780  2c 6d 79 63 6f 29 3d a4  6d 6f 64 65 63 6f 6c 33  |,myco)=.modecol3|
00003790  20 8c 20 3a 3d b9 0d 14  96 06 3d a3 0d 14 a0 05  | . :=.....=.....|
000037a0  20 0d 14 aa 0e dd a4 6d  6f 64 65 63 6f 6c 31 0d  | ......modecol1.|
000037b0  14 b4 12 e7 20 63 6f 6c  6c 3d 31 20 8c 20 3a 3d  |.... coll=1 . :=|
000037c0  31 0d 14 be 12 e7 20 63  6f 6c 6c 3d 33 20 8c 20  |1..... coll=3 . |
000037d0  3a 3d 33 0d 14 c8 13 e7  20 63 6f 6c 6c 3d 31 35  |:=3..... coll=15|
000037e0  20 8c 20 3a 3d 37 0d 14  d2 13 e7 20 63 6f 6c 6c  | . :=7..... coll|
000037f0  3d 36 33 20 8c 20 3a 3d  30 0d 14 dc 06 3d a3 0d  |=63 . :=0....=..|
00003800  14 e6 05 20 0d 14 f0 0e  dd a4 6d 6f 64 65 63 6f  |... ......modeco|
00003810  6c 32 0d 14 fa 12 e7 20  63 6f 6c 6c 3d 31 20 8c  |l2..... coll=1 .|
00003820  20 3a 3d 31 0d 15 04 12  e7 20 63 6f 6c 6c 3d 33  | :=1..... coll=3|
00003830  20 8c 20 3a 3d 33 0d 15  0e 14 e7 20 63 6f 6c 6c  | . :=3..... coll|
00003840  3d 31 35 20 8c 20 3a 3d  31 31 0d 15 18 13 e7 20  |=15 . :=11..... |
00003850  63 6f 6c 6c 3d 36 33 20  8c 20 3a 3d 33 0d 15 22  |coll=63 . :=3.."|
00003860  06 3d a3 0d 15 2c 05 20  0d 15 36 0e dd a4 6d 6f  |.=...,. ..6...mo|
00003870  64 65 63 6f 6c 33 0d 15  40 12 e7 20 63 6f 6c 6c  |decol3..@.. coll|
00003880  3d 31 20 8c 20 3a 3d 31  0d 15 4a 12 e7 20 63 6f  |=1 . :=1..J.. co|
00003890  6c 6c 3d 33 20 8c 20 3a  3d 32 0d 15 54 14 e7 20  |ll=3 . :=2..T.. |
000038a0  63 6f 6c 6c 3d 31 35 20  8c 20 3a 3d 31 30 0d 15  |coll=15 . :=10..|
000038b0  5e 14 e7 20 63 6f 6c 6c  3d 36 33 20 8c 20 3a 3d  |^.. coll=63 . :=|
000038c0  31 32 0d 15 68 06 3d a3  0d 15 72 05 20 0d 15 7c  |12..h.=...r. ..||
000038d0  11 dd f2 66 69 6e 64 6f  75 74 72 65 61 6c 0d 15  |...findoutreal..|
000038e0  86 23 c8 99 22 57 69 6d  70 5f 47 65 74 50 6f 69  |.#.."Wimp_GetPoi|
000038f0  6e 74 65 72 49 6e 66 6f  22 2c 2c 62 6c 6f 63 6b  |nterInfo",,block|
00003900  25 0d 15 90 1f 6d 78 63  6f 3d 62 6c 6f 63 6b 25  |%....mxco=block%|
00003910  21 30 3a 6d 79 63 6f 3d  62 6c 6f 63 6b 25 21 34  |!0:myco=block%!4|
00003920  0d 15 9a 18 21 62 6c 6f  63 6b 25 3d 6d 61 69 6e  |....!block%=main|
00003930  5f 68 61 6e 64 6c 65 25  0d 15 a4 23 c8 99 22 57  |_handle%...#.."W|
00003940  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 53 74 61  |imp_GetWindowSta|
00003950  74 65 22 2c 2c 62 6c 6f  63 6b 25 0d 15 ae 25 73  |te",,block%...%s|
00003960  63 72 6c 6c 78 3d 62 6c  6f 63 6b 25 21 32 30 3a  |crllx=block%!20:|
00003970  73 63 72 6c 6c 79 3d 62  6c 6f 63 6b 25 21 32 34  |scrlly=block%!24|
00003980  0d 15 b8 1f 6d 78 63 6f  3d 6d 78 63 6f 2b 28 73  |....mxco=mxco+(s|
00003990  63 72 6c 6c 78 2d 62 6c  6f 63 6b 25 21 34 29 0d  |crllx-block%!4).|
000039a0  15 c2 20 6d 79 63 6f 3d  6d 79 63 6f 2b 28 73 63  |.. myco=myco+(sc|
000039b0  72 6c 6c 79 2d 62 6c 6f  63 6b 25 21 31 36 29 0d  |rlly-block%!16).|
000039c0  15 cc 15 66 6f 75 6e 64  3d 30 3a 63 6f 75 6e 74  |...found=0:count|
000039d0  65 72 3d 30 0d 15 d6 05  f5 0d 15 e0 0e 63 6f 75  |er=0.........cou|
000039e0  6e 74 65 72 2b 3d 31 0d  15 ea 7b e7 20 6d 78 63  |nter+=1...{. mxc|
000039f0  6f 3e 73 71 73 69 7a 65  73 28 30 2c 63 6f 75 6e  |o>sqsizes(0,coun|
00003a00  74 65 72 29 20 80 20 6d  78 63 6f 3c 73 71 73 69  |ter) . mxco<sqsi|
00003a10  7a 65 73 28 32 2c 63 6f  75 6e 74 65 72 29 20 80  |zes(2,counter) .|
00003a20  20 6d 79 63 6f 3e 73 71  73 69 7a 65 73 28 31 2c  | myco>sqsizes(1,|
00003a30  63 6f 75 6e 74 65 72 29  20 80 20 6d 79 63 6f 3c  |counter) . myco<|
00003a40  73 71 73 69 7a 65 73 28  33 2c 63 6f 75 6e 74 65  |sqsizes(3,counte|
00003a50  72 29 20 8c 20 66 6f 75  6e 64 3d 63 6f 75 6e 74  |r) . found=count|
00003a60  65 72 0d 15 f4 1b fd 20  66 6f 75 6e 64 3c 3e 30  |er..... found<>0|
00003a70  20 84 20 63 6f 75 6e 74  65 72 3d 36 33 0d 15 fe  | . counter=63...|
00003a80  1c e7 20 66 6f 75 6e 64  3c 3e 30 20 8c 20 69 63  |.. found<>0 . ic|
00003a90  6f 6e 25 3d 66 6f 75 6e  64 0d 16 08 18 e7 20 69  |on%=found..... i|
00003aa0  63 6f 6e 25 3d 36 34 20  8c 20 69 63 6f 6e 25 3d  |con%=64 . icon%=|
00003ab0  30 0d 16 12 1a e7 20 69  63 6f 6e 25 3e 36 34 20  |0..... icon%>64 |
00003ac0  8c 20 69 63 6f 6e 25 2d  3d 36 35 0d 16 1c 05 e1  |. icon%-=65.....|
00003ad0  0d 16 26 05 20 0d 16 30  17 dd f2 62 6f 61 72 64  |..&. ..0...board|
00003ae0  63 6c 69 63 6b 28 69 63  6f 6e 25 29 0d 16 3a 2d  |click(icon%)..:-|
00003af0  e7 20 62 75 74 74 6f 6e  25 3d 31 20 80 20 46 69  |. button%=1 . Fi|
00003b00  72 73 74 3c 3e 2d 31 20  8c 20 f2 69 6e 74 65 72  |rst<>-1 . .inter|
00003b10  28 69 63 6f 6e 25 29 3a  e1 0d 16 44 13 e7 20 62  |(icon%):...D.. b|
00003b20  75 74 74 6f 6e 25 3d 31  20 8c 20 e1 0d 16 4e 50  |utton%=1 . ...NP|
00003b30  e7 20 69 63 6f 6e 25 3d  46 69 72 73 74 20 80 20  |. icon%=First . |
00003b40  46 69 72 73 74 3c 3e 2d  31 20 8c 20 46 69 72 73  |First<>-1 . Firs|
00003b50  74 3d 2d 31 3a f2 73 65  74 70 69 65 63 65 66 6c  |t=-1:.setpiecefl|
00003b60  61 67 73 28 69 63 6f 6e  25 2c 62 6c 61 63 6b 29  |ags(icon%,black)|
00003b70  3a f2 63 6c 65 61 72 69  6e 74 3a e1 0d 16 58 62  |:.clearint:...Xb|
00003b80  e7 20 46 69 72 73 74 3d  2d 31 20 80 20 28 73 71  |. First=-1 . (sq|
00003b90  75 61 72 65 28 69 63 6f  6e 25 29 3d 47 6f 20 84  |uare(icon%)=Go .|
00003ba0  20 73 71 75 61 72 65 28  69 63 6f 6e 25 29 3d 47  | square(icon%)=G|
00003bb0  6f 2b 32 29 20 8c 20 46  69 72 73 74 3d 69 63 6f  |o+2) . First=ico|
00003bc0  6e 25 3a f2 73 65 74 70  69 65 63 65 66 6c 61 67  |n%:.setpieceflag|
00003bd0  73 28 69 63 6f 6e 25 2c  72 65 64 29 3a e1 0d 16  |s(icon%,red):...|
00003be0  62 23 e7 20 46 69 72 73  74 3c 3e 2d 31 20 80 20  |b#. First<>-1 . |
00003bf0  73 71 75 61 72 65 28 69  63 6f 6e 25 29 3d 30 20  |square(icon%)=0 |
00003c00  8c 0d 16 6c 10 53 65 63  6f 6e 64 3d 69 63 6f 6e  |...l.Second=icon|
00003c10  25 0d 16 76 14 e7 20 a4  6c 65 67 61 6c 20 8c 20  |%..v.. .legal . |
00003c20  f2 6d 6f 76 65 0d 16 80  05 cd 0d 16 8a 05 e1 0d  |.move...........|
00003c30  16 94 05 20 0d 16 9e 12  dd f2 69 6e 74 65 72 28  |... ......inter(|
00003c40  69 63 6f 6e 25 29 0d 16  a8 1f 69 6e 74 28 30 29  |icon%)....int(0)|
00003c50  3d 46 69 72 73 74 3a 6c  69 6e 74 3d 69 6e 74 28  |=First:lint=int(|
00003c60  6e 69 6e 74 29 0d 16 b2  2b e7 20 6e 69 6e 74 3e  |nint)...+. nint>|
00003c70  30 20 80 20 69 63 6f 6e  25 3d 6c 69 6e 74 20 8c  |0 . icon%=lint .|
00003c80  20 f2 75 6e 69 6e 74 28  69 63 6f 6e 25 29 3a e1  | .unint(icon%):.|
00003c90  0d 16 bc 09 73 65 74 3d  a3 0d 16 c6 21 e7 20 73  |....set=....!. s|
00003ca0  71 75 61 72 65 28 46 69  72 73 74 29 3e 32 20 8c  |quare(First)>2 .|
00003cb0  20 64 31 3d b9 3a 64 32  3d b9 0d 16 d0 21 e7 20  | d1=.:d2=....!. |
00003cc0  73 71 75 61 72 65 28 46  69 72 73 74 29 3d 31 20  |square(First)=1 |
00003cd0  8c 20 64 31 3d b9 3a 64  32 3d a3 0d 16 da 21 e7  |. d1=.:d2=....!.|
00003ce0  20 73 71 75 61 72 65 28  46 69 72 73 74 29 3d 32  | square(First)=2|
00003cf0  20 8c 20 64 31 3d a3 3a  64 32 3d b9 0d 16 e4 17  | . d1=.:d2=.....|
00003d00  e7 20 73 71 75 61 72 65  28 69 63 6f 6e 25 29 3d  |. square(icon%)=|
00003d10  30 20 8c 0d 16 ee 39 e7  20 69 63 6f 6e 25 3d 6c  |0 ....9. icon%=l|
00003d20  69 6e 74 2d 31 34 20 80  20 a4 72 6f 77 28 69 63  |int-14 . .row(ic|
00003d30  6f 6e 25 29 2b 32 20 3d  20 a4 72 6f 77 28 6c 69  |on%)+2 = .row(li|
00003d40  6e 74 29 20 80 20 64 31  3d b9 20 8c 0d 16 f8 1a  |nt) . d1=. .....|
00003d50  e7 20 a4 6f 70 70 28 6c  69 6e 74 2d 37 29 20 8c  |. .opp(lint-7) .|
00003d60  20 73 65 74 3d b9 0d 17  02 05 cd 0d 17 0c 39 e7  | set=.........9.|
00003d70  20 69 63 6f 6e 25 3d 6c  69 6e 74 2d 31 38 20 80  | icon%=lint-18 .|
00003d80  20 a4 72 6f 77 28 69 63  6f 6e 25 29 2b 32 20 3d  | .row(icon%)+2 =|
00003d90  20 a4 72 6f 77 28 6c 69  6e 74 29 20 80 20 64 31  | .row(lint) . d1|
00003da0  3d b9 20 8c 0d 17 16 1a  e7 20 a4 6f 70 70 28 6c  |=. ...... .opp(l|
00003db0  69 6e 74 2d 39 29 20 8c  20 73 65 74 3d b9 0d 17  |int-9) . set=...|
00003dc0  20 05 cd 0d 17 2a 39 e7  20 69 63 6f 6e 25 3d 6c  | ....*9. icon%=l|
00003dd0  69 6e 74 2b 31 34 20 80  20 a4 72 6f 77 28 69 63  |int+14 . .row(ic|
00003de0  6f 6e 25 29 2d 32 20 3d  20 a4 72 6f 77 28 6c 69  |on%)-2 = .row(li|
00003df0  6e 74 29 20 80 20 64 32  3d b9 20 8c 0d 17 34 1a  |nt) . d2=. ...4.|
00003e00  e7 20 a4 6f 70 70 28 6c  69 6e 74 2b 37 29 20 8c  |. .opp(lint+7) .|
00003e10  20 73 65 74 3d b9 0d 17  3e 05 cd 0d 17 48 39 e7  | set=...>....H9.|
00003e20  20 69 63 6f 6e 25 3d 6c  69 6e 74 2b 31 38 20 80  | icon%=lint+18 .|
00003e30  20 a4 72 6f 77 28 69 63  6f 6e 25 29 2d 32 20 3d  | .row(icon%)-2 =|
00003e40  20 a4 72 6f 77 28 6c 69  6e 74 29 20 80 20 64 32  | .row(lint) . d2|
00003e50  3d b9 20 8c 0d 17 52 1a  e7 20 a4 6f 70 70 28 6c  |=. ...R.. .opp(l|
00003e60  69 6e 74 2b 39 29 20 8c  20 73 65 74 3d b9 0d 17  |int+9) . set=...|
00003e70  5c 05 cd 0d 17 66 05 cd  0d 17 70 0b e7 20 73 65  |\....f....p.. se|
00003e80  74 20 8c 0d 17 7a 1f f2  73 65 74 70 69 65 63 65  |t ...z..setpiece|
00003e90  66 6c 61 67 73 28 69 63  6f 6e 25 2c 67 72 65 65  |flags(icon%,gree|
00003ea0  6e 29 0d 17 84 0b 6e 69  6e 74 2b 3d 31 0d 17 8e  |n)....nint+=1...|
00003eb0  13 69 6e 74 28 6e 69 6e  74 29 3d 69 63 6f 6e 25  |.int(nint)=icon%|
00003ec0  0d 17 98 05 cd 0d 17 a2  05 e1 0d 17 ac 05 20 0d  |.............. .|
00003ed0  17 b6 0e dd f2 63 6c 65  61 72 69 6e 74 0d 17 c0  |.....clearint...|
00003ee0  0e e7 20 6e 69 6e 74 3e  30 20 8c 0d 17 ca 10 e3  |.. nint>0 ......|
00003ef0  20 69 3d 31 20 b8 20 6e  69 6e 74 0d 17 d4 20 f2  | i=1 . nint... .|
00003f00  73 65 74 70 69 65 63 65  66 6c 61 67 73 28 69 6e  |setpieceflags(in|
00003f10  74 28 69 29 2c 62 6c 61  63 6b 29 0d 17 de 05 ed  |t(i),black).....|
00003f20  0d 17 e8 05 cd 0d 17 f2  12 6e 69 6e 74 3d 30 3a  |.........nint=0:|
00003f30  69 6e 74 28 29 3d 30 0d  17 fc 05 e1 0d 18 06 05  |int()=0.........|
00003f40  20 0d 18 10 12 dd f2 75  6e 69 6e 74 28 69 63 6f  | ......unint(ico|
00003f50  6e 25 29 0d 18 1a 1f f2  73 65 74 70 69 65 63 65  |n%).....setpiece|
00003f60  66 6c 61 67 73 28 69 63  6f 6e 25 2c 62 6c 61 63  |flags(icon%,blac|
00003f70  6b 29 0d 18 24 0f 69 6e  74 28 6e 69 6e 74 29 3d  |k)..$.int(nint)=|
00003f80  30 0d 18 2e 0b 6e 69 6e  74 2d 3d 31 0d 18 38 05  |0....nint-=1..8.|
00003f90  e1 0d 18 42 05 20 0d 18  4c 0b dd a4 6c 65 67 61  |...B. ..L...lega|
00003fa0  6c 0d 18 56 21 e7 20 73  71 75 61 72 65 28 46 69  |l..V!. square(Fi|
00003fb0  72 73 74 29 3e 32 20 8c  20 64 31 3d b9 3a 64 32  |rst)>2 . d1=.:d2|
00003fc0  3d b9 0d 18 60 21 e7 20  73 71 75 61 72 65 28 46  |=...`!. square(F|
00003fd0  69 72 73 74 29 3d 31 20  8c 20 64 31 3d b9 3a 64  |irst)=1 . d1=.:d|
00003fe0  32 3d a3 0d 18 6a 21 e7  20 73 71 75 61 72 65 28  |2=...j!. square(|
00003ff0  46 69 72 73 74 29 3d 32  20 8c 20 64 31 3d a3 3a  |First)=2 . d1=.:|
00004000  64 32 3d b9 0d 18 74 08  6f 6b 3d a3 0d 18 7e 0e  |d2=...t.ok=...~.|
00004010  e7 20 6e 69 6e 74 3d 30  20 8c 0d 18 88 11 e7 20  |. nint=0 ...... |
00004020  69 6e 66 6f 72 63 65 3d  a3 20 8c 0d 18 92 04 0d  |inforce=. ......|
00004030  18 9c 42 e7 20 53 65 63  6f 6e 64 2d 46 69 72 73  |..B. Second-Firs|
00004040  74 3d 2d 37 20 80 20 64  31 3d b9 20 80 20 a4 72  |t=-7 . d1=. . .r|
00004050  6f 77 28 53 65 63 6f 6e  64 29 2b 31 20 3d 20 a4  |ow(Second)+1 = .|
00004060  72 6f 77 28 46 69 72 73  74 29 20 8c 20 6f 6b 3d  |row(First) . ok=|
00004070  b9 0d 18 a6 42 e7 20 53  65 63 6f 6e 64 2d 46 69  |....B. Second-Fi|
00004080  72 73 74 3d 2d 39 20 80  20 64 31 3d b9 20 80 20  |rst=-9 . d1=. . |
00004090  a4 72 6f 77 28 53 65 63  6f 6e 64 29 2b 31 20 3d  |.row(Second)+1 =|
000040a0  20 a4 72 6f 77 28 46 69  72 73 74 29 20 8c 20 6f  | .row(First) . o|
000040b0  6b 3d b9 0d 18 b0 41 e7  20 53 65 63 6f 6e 64 2d  |k=....A. Second-|
000040c0  46 69 72 73 74 3d 37 20  80 20 64 32 3d b9 20 80  |First=7 . d2=. .|
000040d0  20 a4 72 6f 77 28 53 65  63 6f 6e 64 29 2d 31 20  | .row(Second)-1 |
000040e0  3d 20 a4 72 6f 77 28 46  69 72 73 74 29 20 8c 20  |= .row(First) . |
000040f0  6f 6b 3d b9 0d 18 ba 41  e7 20 53 65 63 6f 6e 64  |ok=....A. Second|
00004100  2d 46 69 72 73 74 3d 39  20 80 20 64 32 3d b9 20  |-First=9 . d2=. |
00004110  80 20 a4 72 6f 77 28 53  65 63 6f 6e 64 29 2d 31  |. .row(Second)-1|
00004120  20 3d 20 a4 72 6f 77 28  46 69 72 73 74 29 20 8c  | = .row(First) .|
00004130  20 6f 6b 3d b9 0d 18 c4  05 cd 0d 18 ce 04 0d 18  | ok=............|
00004140  d8 05 3a 0d 18 e2 69 e7  20 53 65 63 6f 6e 64 2d  |..:...i. Second-|
00004150  46 69 72 73 74 3d 2d 31  34 20 80 20 64 31 3d b9  |First=-14 . d1=.|
00004160  20 80 20 a4 72 6f 77 28  53 65 63 6f 6e 64 29 2b  | . .row(Second)+|
00004170  32 20 3d 20 a4 72 6f 77  28 46 69 72 73 74 29 20  |2 = .row(First) |
00004180  80 20 a4 6f 70 70 28 53  65 63 6f 6e 64 2b 37 29  |. .opp(Second+7)|
00004190  20 8c 20 f2 64 65 6c 65  74 65 6f 70 70 28 53 65  | . .deleteopp(Se|
000041a0  63 6f 6e 64 2b 37 29 3a  6f 6b 3d b9 0d 18 ec 69  |cond+7):ok=....i|
000041b0  e7 20 53 65 63 6f 6e 64  2d 46 69 72 73 74 3d 2d  |. Second-First=-|
000041c0  31 38 20 80 20 64 31 3d  b9 20 80 20 a4 72 6f 77  |18 . d1=. . .row|
000041d0  28 53 65 63 6f 6e 64 29  2b 32 20 3d 20 a4 72 6f  |(Second)+2 = .ro|
000041e0  77 28 46 69 72 73 74 29  20 80 20 a4 6f 70 70 28  |w(First) . .opp(|
000041f0  53 65 63 6f 6e 64 2b 39  29 20 8c 20 f2 64 65 6c  |Second+9) . .del|
00004200  65 74 65 6f 70 70 28 53  65 63 6f 6e 64 2b 39 29  |eteopp(Second+9)|
00004210  3a 6f 6b 3d b9 0d 18 f6  68 e7 20 53 65 63 6f 6e  |:ok=....h. Secon|
00004220  64 2d 46 69 72 73 74 3d  31 34 20 80 20 64 32 3d  |d-First=14 . d2=|
00004230  b9 20 80 20 a4 72 6f 77  28 53 65 63 6f 6e 64 29  |. . .row(Second)|
00004240  2d 32 20 3d 20 a4 72 6f  77 28 46 69 72 73 74 29  |-2 = .row(First)|
00004250  20 80 20 a4 6f 70 70 28  53 65 63 6f 6e 64 2d 37  | . .opp(Second-7|
00004260  29 20 8c 20 f2 64 65 6c  65 74 65 6f 70 70 28 53  |) . .deleteopp(S|
00004270  65 63 6f 6e 64 2d 37 29  3a 6f 6b 3d b9 0d 19 00  |econd-7):ok=....|
00004280  68 e7 20 53 65 63 6f 6e  64 2d 46 69 72 73 74 3d  |h. Second-First=|
00004290  31 38 20 80 20 64 32 3d  b9 20 80 20 a4 72 6f 77  |18 . d2=. . .row|
000042a0  28 53 65 63 6f 6e 64 29  2d 32 20 3d 20 a4 72 6f  |(Second)-2 = .ro|
000042b0  77 28 46 69 72 73 74 29  20 80 20 a4 6f 70 70 28  |w(First) . .opp(|
000042c0  53 65 63 6f 6e 64 2d 39  29 20 8c 20 f2 64 65 6c  |Second-9) . .del|
000042d0  65 74 65 6f 70 70 28 53  65 63 6f 6e 64 2d 39 29  |eteopp(Second-9)|
000042e0  3a 6f 6b 3d b9 0d 19 0a  05 cd 0d 19 14 10 e7 20  |:ok=........... |
000042f0  6f 6b 3d b9 20 8c 20 3a  3d b9 0d 19 1e 12 e7 20  |ok=. . :=...... |
00004300  6e 69 6e 74 3d 30 20 8c  20 3a 3d 30 0d 19 28 08  |nint=0 . :=0..(.|
00004310  6f 6b 3d a3 0d 19 32 71  e7 20 53 65 63 6f 6e 64  |ok=...2q. Second|
00004320  2d 69 6e 74 28 6e 69 6e  74 29 3d 2d 31 34 20 80  |-int(nint)=-14 .|
00004330  20 64 31 3d b9 20 80 20  a4 72 6f 77 28 53 65 63  | d1=. . .row(Sec|
00004340  6f 6e 64 29 2b 32 20 3d  20 a4 72 6f 77 28 69 6e  |ond)+2 = .row(in|
00004350  74 28 6e 69 6e 74 29 29  20 80 20 a4 6f 70 70 28  |t(nint)) . .opp(|
00004360  53 65 63 6f 6e 64 2b 37  29 20 8c 20 f2 64 65 6c  |Second+7) . .del|
00004370  65 74 65 6f 70 70 28 53  65 63 6f 6e 64 2b 37 29  |eteopp(Second+7)|
00004380  3a 6f 6b 3d b9 0d 19 3c  71 e7 20 53 65 63 6f 6e  |:ok=...<q. Secon|
00004390  64 2d 69 6e 74 28 6e 69  6e 74 29 3d 2d 31 38 20  |d-int(nint)=-18 |
000043a0  80 20 64 31 3d b9 20 80  20 a4 72 6f 77 28 53 65  |. d1=. . .row(Se|
000043b0  63 6f 6e 64 29 2b 32 20  3d 20 a4 72 6f 77 28 69  |cond)+2 = .row(i|
000043c0  6e 74 28 6e 69 6e 74 29  29 20 80 20 a4 6f 70 70  |nt(nint)) . .opp|
000043d0  28 53 65 63 6f 6e 64 2b  39 29 20 8c 20 f2 64 65  |(Second+9) . .de|
000043e0  6c 65 74 65 6f 70 70 28  53 65 63 6f 6e 64 2b 39  |leteopp(Second+9|
000043f0  29 3a 6f 6b 3d b9 0d 19  46 70 e7 20 53 65 63 6f  |):ok=...Fp. Seco|
00004400  6e 64 2d 69 6e 74 28 6e  69 6e 74 29 3d 31 34 20  |nd-int(nint)=14 |
00004410  80 20 64 32 3d b9 20 80  20 a4 72 6f 77 28 53 65  |. d2=. . .row(Se|
00004420  63 6f 6e 64 29 2d 32 20  3d 20 a4 72 6f 77 28 69  |cond)-2 = .row(i|
00004430  6e 74 28 6e 69 6e 74 29  29 20 80 20 a4 6f 70 70  |nt(nint)) . .opp|
00004440  28 53 65 63 6f 6e 64 2d  37 29 20 8c 20 f2 64 65  |(Second-7) . .de|
00004450  6c 65 74 65 6f 70 70 28  53 65 63 6f 6e 64 2d 37  |leteopp(Second-7|
00004460  29 3a 6f 6b 3d b9 0d 19  50 70 e7 20 53 65 63 6f  |):ok=...Pp. Seco|
00004470  6e 64 2d 69 6e 74 28 6e  69 6e 74 29 3d 31 38 20  |nd-int(nint)=18 |
00004480  80 20 64 32 3d b9 20 80  20 a4 72 6f 77 28 53 65  |. d2=. . .row(Se|
00004490  63 6f 6e 64 29 2d 32 20  3d 20 a4 72 6f 77 28 69  |cond)-2 = .row(i|
000044a0  6e 74 28 6e 69 6e 74 29  29 20 80 20 a4 6f 70 70  |nt(nint)) . .opp|
000044b0  28 53 65 63 6f 6e 64 2d  39 29 20 8c 20 f2 64 65  |(Second-9) . .de|
000044c0  6c 65 74 65 6f 70 70 28  53 65 63 6f 6e 64 2d 39  |leteopp(Second-9|
000044d0  29 3a 6f 6b 3d b9 0d 19  5a 10 e7 20 6f 6b 3d a3  |):ok=...Z.. ok=.|
000044e0  20 8c 20 3a 3d 30 0d 19  64 10 e3 20 69 3d 31 20  | . :=0..d.. i=1 |
000044f0  b8 20 6e 69 6e 74 0d 19  6e 37 e7 20 69 6e 74 28  |. nint..n7. int(|
00004500  69 29 2d 69 6e 74 28 69  2d 31 29 3d 2d 31 34 20  |i)-int(i-1)=-14 |
00004510  80 20 64 31 3d b9 20 8c  20 f2 64 65 6c 65 74 65  |. d1=. . .delete|
00004520  6f 70 70 28 69 6e 74 28  69 29 2b 37 29 0d 19 78  |opp(int(i)+7)..x|
00004530  37 e7 20 69 6e 74 28 69  29 2d 69 6e 74 28 69 2d  |7. int(i)-int(i-|
00004540  31 29 3d 2d 31 38 20 80  20 64 31 3d b9 20 8c 20  |1)=-18 . d1=. . |
00004550  f2 64 65 6c 65 74 65 6f  70 70 28 69 6e 74 28 69  |.deleteopp(int(i|
00004560  29 2b 39 29 0d 19 82 36  e7 20 69 6e 74 28 69 29  |)+9)...6. int(i)|
00004570  2d 69 6e 74 28 69 2d 31  29 3d 31 34 20 80 20 64  |-int(i-1)=14 . d|
00004580  32 3d b9 20 8c 20 f2 64  65 6c 65 74 65 6f 70 70  |2=. . .deleteopp|
00004590  28 69 6e 74 28 69 29 2d  37 29 0d 19 8c 36 e7 20  |(int(i)-7)...6. |
000045a0  69 6e 74 28 69 29 2d 69  6e 74 28 69 2d 31 29 3d  |int(i)-int(i-1)=|
000045b0  31 38 20 80 20 64 32 3d  b9 20 8c 20 f2 64 65 6c  |18 . d2=. . .del|
000045c0  65 74 65 6f 70 70 28 69  6e 74 28 69 29 2d 39 29  |eteopp(int(i)-9)|
000045d0  0d 19 96 05 ed 0d 19 a0  0d f2 63 6c 65 61 72 69  |..........cleari|
000045e0  6e 74 0d 19 aa 06 3d b9  0d 19 b4 05 20 0d 19 be  |nt....=..... ...|
000045f0  10 dd a4 6f 70 70 28 6f  70 63 68 6b 29 0d 19 c8  |...opp(opchk)...|
00004600  1e e7 20 6f 70 63 68 6b  3c 30 20 84 20 6f 70 63  |.. opchk<0 . opc|
00004610  68 6b 3e 36 33 20 8c 20  3a 3d a3 0d 19 d2 33 e7  |hk>63 . :=....3.|
00004620  20 73 71 75 61 72 65 28  6f 70 63 68 6b 29 3d 4f  | square(opchk)=O|
00004630  67 6f 20 84 20 73 71 75  61 72 65 28 6f 70 63 68  |go . square(opch|
00004640  6b 29 3d 4f 67 6f 2b 32  20 8c 20 3a 3d b9 0d 19  |k)=Ogo+2 . :=...|
00004650  dc 06 3d a3 0d 19 e6 05  20 0d 19 f0 17 dd f2 64  |..=..... ......d|
00004660  65 6c 65 74 65 6f 70 70  28 64 65 6c 63 6f 6e 29  |eleteopp(delcon)|
00004670  0d 19 fa 14 73 71 75 61  72 65 28 64 65 6c 63 6f  |....square(delco|
00004680  6e 29 3d 30 0d 1a 04 14  e7 20 74 68 69 63 6f 6e  |n)=0..... thicon|
00004690  64 6f 6e 65 3d a3 20 8c  0d 1a 0e 17 f2 73 65 74  |done=. ......set|
000046a0  67 6f 69 63 6f 6e 28 a3  29 3a f2 70 6f 6c 6c 0d  |goicon(.):.poll.|
000046b0  1a 18 16 e7 20 66 69 6e  69 73 68 65 64 25 20 8c  |.... finished% .|
000046c0  20 f2 65 6e 64 0d 1a 22  10 74 68 69 63 6f 6e 64  | .end..".thicond|
000046d0  6f 6e 65 3d b9 0d 1a 2c  05 cd 0d 1a 36 0c 6e 70  |one=...,....6.np|
000046e0  68 75 66 66 3d a3 0d 1a  40 17 f2 73 65 74 70 69  |huff=...@..setpi|
000046f0  65 63 65 28 64 65 6c 63  6f 6e 2c 30 29 0d 1a 4a  |ece(delcon,0)..J|
00004700  05 e1 0d 1a 54 05 20 0d  1a 5e 0a dd f2 6d 6f 76  |....T. ..^...mov|
00004710  65 0d 1a 68 14 e7 20 74  68 69 63 6f 6e 64 6f 6e  |e..h.. thicondon|
00004720  65 3d a3 20 8c 0d 1a 72  17 f2 73 65 74 67 6f 69  |e=. ...r..setgoi|
00004730  63 6f 6e 28 a3 29 3a f2  70 6f 6c 6c 0d 1a 7c 16  |con(.):.poll..|.|
00004740  e7 20 66 69 6e 69 73 68  65 64 25 20 8c 20 f2 65  |. finished% . .e|
00004750  6e 64 0d 1a 86 05 cd 0d  1a 90 27 e7 20 47 6f 3d  |nd........'. Go=|
00004760  31 20 80 20 53 65 63 6f  6e 64 3c 38 20 8c 20 73  |1 . Second<8 . s|
00004770  71 75 61 72 65 28 46 69  72 73 74 29 3d 33 0d 1a  |quare(First)=3..|
00004780  9a 28 e7 20 47 6f 3d 32  20 80 20 53 65 63 6f 6e  |.(. Go=2 . Secon|
00004790  64 3e 35 35 20 8c 20 73  71 75 61 72 65 28 46 69  |d>55 . square(Fi|
000047a0  72 73 74 29 3d 34 0d 1a  a4 20 73 71 75 61 72 65  |rst)=4... square|
000047b0  28 53 65 63 6f 6e 64 29  3d 73 71 75 61 72 65 28  |(Second)=square(|
000047c0  46 69 72 73 74 29 0d 1a  ae 13 73 71 75 61 72 65  |First)....square|
000047d0  28 46 69 72 73 74 29 3d  30 0d 1a b8 16 f2 73 65  |(First)=0.....se|
000047e0  74 70 69 65 63 65 28 46  69 72 73 74 2c 30 29 0d  |tpiece(First,0).|
000047f0  1a c2 1f f2 73 65 74 70  69 65 63 65 66 6c 61 67  |....setpieceflag|
00004800  73 28 46 69 72 73 74 2c  62 6c 61 63 6b 29 0d 1a  |s(First,black)..|
00004810  cc 24 f2 73 65 74 70 69  65 63 65 28 53 65 63 6f  |.$.setpiece(Seco|
00004820  6e 64 2c 73 71 75 61 72  65 28 53 65 63 6f 6e 64  |nd,square(Second|
00004830  29 29 0d 1a d6 20 f2 73  65 74 70 69 65 63 65 66  |))... .setpiecef|
00004840  6c 61 67 73 28 53 65 63  6f 6e 64 2c 62 6c 61 63  |lags(Second,blac|
00004850  6b 29 0d 1a e0 10 74 68  69 63 6f 6e 64 6f 6e 65  |k)....thicondone|
00004860  3d a3 0d 1a ea 12 e3 20  68 3d 30 b8 6e 70 68 75  |=...... h=0.nphu|
00004870  66 66 2d 31 0d 1a f4 26  e7 20 46 69 72 73 74 3d  |ff-1...&. First=|
00004880  6e 68 75 66 66 28 68 29  20 8c 20 6e 68 75 66 66  |nhuff(h) . nhuff|
00004890  28 68 29 3d 53 65 63 6f  6e 64 0d 1a fe 05 ed 0d  |(h)=Second......|
000048a0  1b 08 0d f2 63 6f 75 6e  74 6d 65 6e 0d 1b 12 0e  |....countmen....|
000048b0  f2 6a 75 73 74 6d 6f 76  65 64 0d 1b 1c 17 e7 20  |.justmoved..... |
000048c0  69 6e 66 6f 72 63 65 20  8c 20 66 64 6f 6e 65 3d  |inforce . fdone=|
000048d0  b9 0d 1b 26 05 e1 0d 1b  30 05 20 0d 1b 3a 14 dd  |...&....0. ..:..|
000048e0  f2 73 65 74 75 70 76 61  72 73 6e 64 69 6d 73 0d  |.setupvarsndims.|
000048f0  1b 44 0e 63 6f 6e 63 65  64 65 64 3d a3 0d 1b 4e  |.D.conceded=...N|
00004900  0b 69 6e 64 69 6d 3d a3  0d 1b 58 0c 69 6e 63 6f  |.indim=...X.inco|
00004910  6d 70 3d a3 0d 1b 62 11  69 63 6f 6e 63 6c 69 63  |mp=...b.iconclic|
00004920  6b 65 64 3d a3 0d 1b 6c  14 70 68 75 66 66 3d 30  |ked=...l.phuff=0|
00004930  3a 6e 70 68 75 66 66 3d  30 0d 1b 76 0a 6e 69 6e  |:nphuff=0..v.nin|
00004940  74 3d 30 0d 1b 80 0a 68  66 66 64 3d a3 0d 1b 8a  |t=0....hffd=....|
00004950  0d 69 6e 66 6f 72 63 65  3d a3 0d 1b 94 0c 69 6e  |.inforce=.....in|
00004960  68 75 66 66 3d a3 0d 1b  9e 0e 6d 61 69 6e 6f 70  |huff=.....mainop|
00004970  65 6e 3d a3 0d 1b a8 0f  66 69 6e 69 73 68 65 64  |en=.....finished|
00004980  25 3d a3 0d 1b b2 0c 69  6e 73 74 65 70 3d a3 0d  |%=.....instep=..|
00004990  1b bc 10 74 68 69 63 6f  6e 64 6f 6e 65 3d a3 0d  |...thicondone=..|
000049a0  1b c6 1c 50 6c 79 72 31  3d 30 3a 50 6c 79 72 32  |...Plyr1=0:Plyr2|
000049b0  3d 30 3a 6c 65 76 65 6c  25 3d 31 0d 1b d0 1b 70  |=0:level%=1....p|
000049c0  6f 73 3d 30 3a 67 72 6c  64 3d 30 3a 70 6c 61 79  |os=0:grld=0:play|
000049d0  69 6e 67 25 3d b9 0d 1b  da 16 46 69 72 73 74 3d  |ing%=.....First=|
000049e0  2d 31 3a 53 65 63 6f 6e  64 3d 2d 31 0d 1b e4 0f  |-1:Second=-1....|
000049f0  64 69 6d 65 6e 73 69 6f  6e 3d 30 0d 1b ee 22 47  |dimension=0..."G|
00004a00  6f 3d 31 3a 4f 67 6f 3d  32 3a 50 6c 79 72 31 24  |o=1:Ogo=2:Plyr1$|
00004a10  3d 22 22 3a 50 6c 79 72  32 24 3d 22 22 0d 1b f8  |="":Plyr2$=""...|
00004a20  08 6c 64 3d 35 0d 1c 02  1a de 20 78 63 6f 6f 72  |.ld=5..... xcoor|
00004a30  64 28 36 33 29 2c 79 63  6f 6f 72 64 28 38 29 0d  |d(63),ycoord(8).|
00004a40  1c 0c 28 de 20 73 71 75  61 72 65 28 36 33 29 2c  |..(. square(63),|
00004a50  67 72 61 70 68 69 63 24  28 32 35 35 29 2c 6e 75  |graphic$(255),nu|
00004a60  6d 73 71 28 33 31 29 0d  1c 16 40 de 20 73 74 6f  |msq(31)...@. sto|
00004a70  72 65 20 31 36 33 38 34  2c 68 75 66 66 28 31 31  |re 16384,huff(11|
00004a80  29 2c 67 72 73 69 7a 65  73 28 31 2c 36 34 29 2c  |),grsizes(1,64),|
00004a90  6e 68 75 66 66 28 31 31  29 2c 73 71 73 69 7a 65  |nhuff(11),sqsize|
00004aa0  73 28 33 2c 36 33 29 0d  1c 20 0d de 20 69 6e 74  |s(3,63).. .. int|
00004ab0  28 31 32 29 0d 1c 2a 47  de 20 71 75 61 64 28 6c  |(12)..*G. quad(l|
00004ac0  64 2c 31 32 2c 36 33 29  2c 62 65 73 74 70 6f 73  |d,12,63),bestpos|
00004ad0  28 36 33 29 2c 70 69 65  63 65 28 6c 64 29 2c 6c  |(63),piece(ld),l|
00004ae0  65 76 28 6c 64 29 2c 62  73 63 6f 72 65 28 6c 64  |ev(ld),bscore(ld|
00004af0  29 2c 73 63 6f 72 65 28  6c 64 29 0d 1c 34 12 de  |),score(ld)..4..|
00004b00  20 62 65 73 74 70 6f 73  32 28 36 33 29 0d 1c 3e  | bestpos2(63)..>|
00004b10  41 de 20 64 31 28 6c 64  29 2c 64 32 28 6c 64 29  |A. d1(ld),d2(ld)|
00004b20  2c 6b 69 6e 67 28 6c 64  2c 31 32 29 2c 6d 61 78  |,king(ld,12),max|
00004b30  6c 65 76 28 6c 64 29 2c  6f 6c 64 6e 6a 28 6c 64  |lev(ld),oldnj(ld|
00004b40  2c 31 32 29 2c 6e 6a 28  6c 64 2c 31 32 29 0d 1c  |,12),nj(ld,12)..|
00004b50  48 27 de 20 70 6a 75 6d  70 28 6c 64 29 2c 74 65  |H'. pjump(ld),te|
00004b60  6d 70 73 63 6f 72 65 28  6c 64 29 2c 70 6d 6f 76  |mpscore(ld),pmov|
00004b70  65 28 6c 64 29 0d 1c 52  0c 6c 6f 61 64 65 64 3d  |e(ld)..R.loaded=|
00004b80  30 0d 1c 5c 05 e1 0d 1c  66 05 20 0d 1c 70 0c dd  |0..\....f. ..p..|
00004b90  f2 76 61 72 73 33 64 0d  1c 7a 13 62 6c 61 63 6b  |.vars3d..z.black|
00004ba0  3d 26 37 37 30 30 30 30  33 38 0d 1c 84 11 72 65  |=&77000038....re|
00004bb0  64 3d 26 42 37 30 30 30  30 33 38 0d 1c 8e 13 67  |d=&B7000038....g|
00004bc0  72 65 65 6e 3d 26 41 37  30 30 30 30 33 38 0d 1c  |reen=&A7000038..|
00004bd0  98 14 79 65 6c 6c 6f 77  3d 26 39 37 30 30 30 30  |..yellow=&970000|
00004be0  33 38 0d 1c a2 1d 6d 70  6c 61 79 65 72 31 3d 31  |38....mplayer1=1|
00004bf0  33 34 3a 6d 70 6c 61 79  65 72 32 3d 31 33 37 0d  |34:mplayer2=137.|
00004c00  1c ac 1b 70 63 6e 61 6d  65 31 3d 31 33 33 3a 70  |...pcname1=133:p|
00004c10  63 6e 61 6d 65 32 3d 31  33 36 0d 1c b6 0e 67 6f  |cname2=136....go|
00004c20  69 63 6f 6e 3d 31 35 38  0d 1c c0 1b 6d 31 5f 69  |icon=158....m1_i|
00004c30  63 6f 6e 3d 31 35 30 3a  6d 32 5f 69 63 6f 6e 3d  |con=150:m2_icon=|
00004c40  31 35 31 0d 1c ca 1b 6b  33 5f 69 63 6f 6e 3d 31  |151....k3_icon=1|
00004c50  35 32 3a 6b 34 5f 69 63  6f 6e 3d 31 35 33 0d 1c  |52:k4_icon=153..|
00004c60  d4 12 47 6f 74 65 78 74  69 63 6f 6e 3d 31 35 37  |..Gotexticon=157|
00004c70  0d 1c de 05 e1 0d 1c e8  05 20 0d 1c f2 0c dd f2  |......... ......|
00004c80  76 61 72 73 32 64 0d 1c  fc 13 62 6c 61 63 6b 3d  |vars2d....black=|
00004c90  26 37 37 30 30 33 30 33  41 0d 1d 06 11 72 65 64  |&7700303A....red|
00004ca0  3d 26 42 37 30 30 33 30  33 41 0d 1d 10 13 67 72  |=&B700303A....gr|
00004cb0  65 65 6e 3d 26 41 37 30  30 33 30 33 41 0d 1d 1a  |een=&A700303A...|
00004cc0  14 79 65 6c 6c 6f 77 3d  26 39 37 30 30 33 30 33  |.yellow=&9700303|
00004cd0  41 0d 1d 24 1b 6d 70 6c  61 79 65 72 31 3d 37 31  |A..$.mplayer1=71|
00004ce0  3a 6d 70 6c 61 79 65 72  32 3d 37 33 0d 1d 2e 19  |:mplayer2=73....|
00004cf0  70 63 6e 61 6d 65 31 3d  36 38 3a 70 63 6e 61 6d  |pcname1=68:pcnam|
00004d00  65 32 3d 37 30 0d 1d 38  0d 67 6f 69 63 6f 6e 3d  |e2=70..8.goicon=|
00004d10  37 32 0d 1d 42 19 6d 31  5f 69 63 6f 6e 3d 39 36  |72..B.m1_icon=96|
00004d20  3a 6d 32 5f 69 63 6f 6e  3d 39 38 0d 1d 4c 19 6b  |:m2_icon=98..L.k|
00004d30  33 5f 69 63 6f 6e 3d 39  37 3a 6b 34 5f 69 63 6f  |3_icon=97:k4_ico|
00004d40  6e 3d 39 39 0d 1d 56 11  47 6f 74 65 78 74 69 63  |n=99..V.Gotextic|
00004d50  6f 6e 3d 39 35 0d 1d 60  05 e1 0d 1d 6a 05 20 0d  |on=95..`....j. .|
00004d60  1d 74 10 dd f2 63 68 65  63 6b 69 66 77 6f 6e 0d  |.t...checkifwon.|
00004d70  1d 7e 13 e7 20 6d 31 3d  30 20 80 20 6b 33 3d 30  |.~.. m1=0 . k3=0|
00004d80  20 8c 0d 1d 88 0e 70 6c  61 79 69 6e 67 25 3d a3  | .....playing%=.|
00004d90  0d 1d 92 51 e7 20 c2 50  6c 79 72 32 24 2c 31 29  |...Q. .Plyr2$,1)|
00004da0  3d 22 73 22 20 8c 20 77  6f 6e 24 3d 22 21 22 2b  |="s" . won$="!"+|
00004db0  50 6c 79 72 32 24 2b 22  20 68 61 76 65 20 77 6f  |Plyr2$+" have wo|
00004dc0  6e 21 22 20 8b 20 77 6f  6e 24 3d 22 21 22 2b 50  |n!" . won$="!"+P|
00004dd0  6c 79 72 32 24 2b 22 20  68 61 73 20 77 6f 6e 21  |lyr2$+" has won!|
00004de0  22 0d 1d 9c 30 f2 61 6c  74 65 72 49 63 6f 6e 28  |"...0.alterIcon(|
00004df0  6d 61 69 6e 5f 68 61 6e  64 6c 65 25 2c 47 6f 74  |main_handle%,Got|
00004e00  65 78 74 69 63 6f 6e 2c  77 6f 6e 24 2c 30 2c 31  |exticon,won$,0,1|
00004e10  29 0d 1d a6 05 cd 0d 1d  b0 13 e7 20 6d 32 3d 30  |).......... m2=0|
00004e20  20 80 20 6b 34 3d 30 20  8c 0d 1d ba 0e 70 6c 61  | . k4=0 .....pla|
00004e30  79 69 6e 67 25 3d a3 0d  1d c4 51 e7 20 c2 50 6c  |ying%=....Q. .Pl|
00004e40  79 72 31 24 2c 31 29 3d  22 73 22 20 8c 20 77 6f  |yr1$,1)="s" . wo|
00004e50  6e 24 3d 22 21 22 2b 50  6c 79 72 31 24 2b 22 20  |n$="!"+Plyr1$+" |
00004e60  68 61 76 65 20 77 6f 6e  21 22 20 8b 20 77 6f 6e  |have won!" . won|
00004e70  24 3d 22 21 22 2b 50 6c  79 72 31 24 2b 22 20 68  |$="!"+Plyr1$+" h|
00004e80  61 73 20 77 6f 6e 21 22  0d 1d ce 30 f2 61 6c 74  |as won!"...0.alt|
00004e90  65 72 49 63 6f 6e 28 6d  61 69 6e 5f 68 61 6e 64  |erIcon(main_hand|
00004ea0  6c 65 25 2c 47 6f 74 65  78 74 69 63 6f 6e 2c 77  |le%,Gotexticon,w|
00004eb0  6f 6e 24 2c 30 2c 31 29  0d 1d d8 05 cd 0d 1d e2  |on$,0,1)........|
00004ec0  4b e7 20 70 6c 61 79 69  6e 67 25 3d a3 20 8c 20  |K. playing%=. . |
00004ed0  f2 67 72 65 79 6d 65 6e  75 28 30 2c b9 2c b9 29  |.greymenu(0,.,.)|
00004ee0  3a f2 61 6c 74 65 72 49  63 6f 6e 28 6d 61 69 6e  |:.alterIcon(main|
00004ef0  5f 68 61 6e 64 6c 65 25  2c 67 6f 69 63 6f 6e 2c  |_handle%,goicon,|
00004f00  22 23 22 2c 30 2c 31 29  0d 1d ec 05 e1 0d 1d f6  |"#",0,1)........|
00004f10  05 20 0d 1e 00 1b dd f2  67 72 65 79 6d 65 6e 75  |. ......greymenu|
00004f20  28 67 72 31 2c 67 72 32  2c 67 72 33 29 0d 1e 0a  |(gr1,gr2,gr3)...|
00004f30  1d e7 20 67 72 31 20 8c  20 6d 61 69 6e 6d 21 36  |.. gr1 . mainm!6|
00004f40  30 3d 26 37 34 30 30 30  32 31 0d 1e 14 1e e7 20  |0=&7400021..... |
00004f50  67 72 32 20 8c 20 6d 61  69 6e 6d 21 31 35 36 3d  |gr2 . mainm!156=|
00004f60  26 37 34 30 30 30 32 31  0d 1e 1e 1e e7 20 67 72  |&7400021..... gr|
00004f70  33 20 8c 20 6d 61 69 6e  6d 21 31 38 30 3d 26 37  |3 . mainm!180=&7|
00004f80  34 30 30 30 32 31 0d 1e  28 05 e1 0d 1e 32 05 20  |400021..(....2. |
00004f90  0d 1e 3c 24 dd f2 6b 65  79 70 72 65 73 73 65 64  |..<$..keypressed|
00004fa0  28 77 69 6e 64 6f 77 25  2c 69 63 6f 6e 25 2c 6b  |(window%,icon%,k|
00004fb0  65 79 25 29 0d 1e 46 31  e7 20 77 69 6e 64 6f 77  |ey%)..F1. window|
00004fc0  25 3d 73 61 76 65 5f 68  61 6e 64 6c 65 25 20 80  |%=save_handle% .|
00004fd0  20 69 63 6f 6e 25 3d 31  30 20 80 20 6b 65 79 25  | icon%=10 . key%|
00004fe0  3d 31 33 20 8c 0d 1e 50  24 f2 73 61 76 65 28 a4  |=13 ...P$.save(.|
00004ff0  67 65 74 74 65 78 74 28  73 61 76 65 5f 68 61 6e  |gettext(save_han|
00005000  64 6c 65 25 2c 31 30 29  29 0d 1e 5a 05 cc 0d 1e  |dle%,10))..Z....|
00005010  64 1c c8 99 22 57 69 6d  70 5f 50 72 6f 63 65 73  |d..."Wimp_Proces|
00005020  73 4b 65 79 22 2c 6b 65  79 25 0d 1e 6e 05 cd 0d  |sKey",key%..n...|
00005030  1e 78 05 e1 0d 1e 82 05  20 0d 1e 8c 10 dd f2 64  |.x...... ......d|
00005040  65 63 6f 64 65 6d 65 6e  75 0d 1e 96 07 63 3d a3  |ecodemenu....c=.|
00005050  0d 1e a0 0d 63 6c 6f 73  65 69 74 3d a3 0d 1e aa  |....closeit=....|
00005060  2a e7 20 6d 65 6e 63 72  25 3d 2d 32 20 80 20 62  |*. mencr%=-2 . b|
00005070  6c 6f 63 6b 25 21 30 3d  32 20 8c 20 66 69 6e 69  |lock%!0=2 . fini|
00005080  73 68 65 64 25 3d b9 0d  1e b4 1b e7 20 6d 65 6e  |shed%=...... men|
00005090  63 72 25 3d 6d 61 69 6e  5f 68 61 6e 64 6c 65 25  |cr%=main_handle%|
000050a0  20 8c 0d 1e be 12 e7 20  62 6c 6f 63 6b 25 21 30  | ...... block%!0|
000050b0  3d 31 20 8c 0d 1e c8 07  63 3d b9 0d 1e d2 0d 63  |=1 .....c=.....c|
000050c0  6c 6f 73 65 69 74 3d b9  0d 1e dc 14 f2 67 72 65  |loseit=......gre|
000050d0  79 6d 65 6e 75 28 b9 2c  b9 2c b9 29 0d 1e e6 11  |ymenu(.,.,.)....|
000050e0  73 74 65 70 70 6f 73 3d  70 6f 73 2d 31 0d 1e f0  |steppos=pos-1...|
000050f0  0e 73 70 6f 73 3d 70 6f  73 2d 31 0d 1e fa 0c 69  |.spos=pos-1....i|
00005100  6e 73 74 65 70 3d b9 0d  1f 04 0c 69 6e 63 6f 6d  |nstep=.....incom|
00005110  70 3d a3 0d 1f 0e 1c 70  6c 61 79 69 6e 67 25 3d  |p=.....playing%=|
00005120  a3 3a f2 73 65 74 67 6f  69 63 6f 6e 28 a3 29 0d  |.:.setgoicon(.).|
00005130  1f 18 21 f2 6f 70 65 6e  77 69 6e 64 6f 77 28 73  |..!.openwindow(s|
00005140  74 65 70 74 68 72 75 5f  68 61 6e 64 6c 65 25 29  |tepthru_handle%)|
00005150  0d 1f 22 05 cd 0d 1f 2c  2a e7 20 63 3d 30 20 80  |.."....,*. c=0 .|
00005160  20 62 6c 6f 63 6b 25 21  30 3d 33 20 8c 20 f2 6f  | block%!0=3 . .o|
00005170  70 65 6e 67 72 61 70 68  69 63 73 3a 63 3d b9 0d  |pengraphics:c=..|
00005180  1f 36 3a e7 20 63 3d 30  20 80 20 62 6c 6f 63 6b  |.6:. c=0 . block|
00005190  25 21 30 3d 34 20 80 20  62 6c 6f 63 6b 25 21 34  |%!0=4 . block%!4|
000051a0  3d 30 20 8c 20 f2 73 65  74 64 69 6d 65 6e 73 69  |=0 . .setdimensi|
000051b0  6f 6e 28 32 29 3a 63 3d  b9 0d 1f 40 3a e7 20 63  |on(2):c=...@:. c|
000051c0  3d 30 20 80 20 62 6c 6f  63 6b 25 21 30 3d 34 20  |=0 . block%!0=4 |
000051d0  80 20 62 6c 6f 63 6b 25  21 34 3d 31 20 8c 20 f2  |. block%!4=1 . .|
000051e0  73 65 74 64 69 6d 65 6e  73 69 6f 6e 28 33 29 3a  |setdimension(3):|
000051f0  63 3d b9 0d 1f 4a 41 e7  20 63 3d 30 20 80 20 62  |c=...JA. c=0 . b|
00005200  6c 6f 63 6b 25 21 30 3d  35 20 80 20 62 6c 6f 63  |lock%!0=5 . bloc|
00005210  6b 25 21 34 3d 30 20 80  20 70 68 75 66 66 3c 3e  |k%!4=0 . phuff<>|
00005220  30 20 8c 20 f2 68 75 66  66 3a 68 66 66 64 3d b9  |0 . .huff:hffd=.|
00005230  3a 63 3d b9 0d 1f 54 42  e7 20 63 3d 30 20 80 20  |:c=...TB. c=0 . |
00005240  62 6c 6f 63 6b 25 21 30  3d 35 20 80 20 62 6c 6f  |block%!0=5 . blo|
00005250  63 6b 25 21 34 3d 31 20  80 20 70 68 75 66 66 3c  |ck%!4=1 . phuff<|
00005260  3e 30 20 8c 20 f2 66 6f  72 63 65 3a 68 66 66 64  |>0 . .force:hffd|
00005270  3d b9 3a 63 3d b9 0d 1f  5e 25 e7 20 63 3d 30 20  |=.:c=...^%. c=0 |
00005280  80 20 62 6c 6f 63 6b 25  21 30 3d 36 20 8c 20 f2  |. block%!0=6 . .|
00005290  63 6f 6e 63 65 64 65 3a  63 3d b9 0d 1f 68 25 e7  |concede:c=...h%.|
000052a0  20 63 3d 30 20 80 20 62  6c 6f 63 6b 25 21 30 3d  | c=0 . block%!0=|
000052b0  37 20 8c 20 f2 6e 65 77  67 61 6d 65 3a 63 3d b9  |7 . .newgame:c=.|
000052c0  0d 1f 72 05 cd 0d 1f 7c  15 e7 20 68 66 66 64 20  |..r....|.. hffd |
000052d0  8c 20 68 66 66 64 3d a3  3a e1 0d 1f 86 23 c8 99  |. hffd=.:....#..|
000052e0  22 57 69 6d 70 5f 47 65  74 50 6f 69 6e 74 65 72  |"Wimp_GetPointer|
000052f0  49 6e 66 6f 22 2c 2c 62  6c 6f 63 6b 25 0d 1f 90  |Info",,block%...|
00005300  1e e7 20 62 6c 6f 63 6b  25 21 38 3d 31 20 80 20  |.. block%!8=1 . |
00005310  63 6c 6f 73 65 69 74 3d  a3 20 8c 0d 1f 9a 17 f2  |closeit=. ......|
00005320  6d 65 6e 75 63 72 65 61  74 65 28 6d 65 6e 63 72  |menucreate(mencr|
00005330  25 29 0d 1f a4 05 cd 0d  1f ae 05 e1 0d 1f b8 05  |%)..............|
00005340  20 0d 1f c2 0d dd f2 6d  65 73 73 61 67 65 0d 1f  | ......message..|
00005350  cc 12 c8 8e 20 62 6c 6f  63 6b 25 21 31 36 20 ca  |.... block%!16 .|
00005360  0d 1f d6 13 c9 20 30 3a  66 69 6e 69 73 68 65 64  |..... 0:finished|
00005370  25 3d b9 0d 1f e0 1f c9  20 32 3a f2 73 61 76 65  |%=...... 2:.save|
00005380  28 a4 74 69 64 79 28 62  6c 6f 63 6b 25 2b 34 34  |(.tidy(block%+44|
00005390  29 29 0d 1f ea 40 c9 20  33 3a e7 20 62 6c 6f 63  |))...@. 3:. bloc|
000053a0  6b 25 21 31 32 3d 30 20  80 20 62 6c 6f 63 6b 25  |k%!12=0 . block%|
000053b0  21 34 30 3d 26 35 36 30  20 8c 20 f2 6c 6f 61 64  |!40=&560 . .load|
000053c0  28 a4 74 69 64 79 28 62  6c 6f 63 6b 25 2b 34 34  |(.tidy(block%+44|
000053d0  29 29 0d 1f f4 10 c9 20  26 35 30 32 3a f2 68 65  |))..... &502:.he|
000053e0  6c 70 0d 1f fe 0d c9 20  26 34 30 30 43 30 3a 0d  |lp..... &400C0:.|
000053f0  20 08 43 e7 20 28 6d 65  6e 63 72 25 3d 6d 61 69  | .C. (mencr%=mai|
00005400  6e 5f 68 61 6e 64 6c 65  25 20 80 20 62 6c 6f 63  |n_handle% . bloc|
00005410  6b 25 21 33 32 3d 30 20  80 20 62 6c 6f 63 6b 25  |k%!32=0 . block%|
00005420  21 33 36 3d 31 29 20 8c  20 f2 6f 70 65 6e 73 61  |!36=1) . .opensa|
00005430  76 65 0d 20 12 2b e7 20  28 6d 65 6e 63 72 25 3d  |ve. .+. (mencr%=|
00005440  2d 32 20 80 20 62 6c 6f  63 6b 25 21 33 32 3d 31  |-2 . block%!32=1|
00005450  29 20 8c 20 f2 6f 70 65  6e 73 61 76 65 0d 20 1c  |) . .opensave. .|
00005460  38 e7 20 28 6d 65 6e 63  72 25 3d 6d 61 69 6e 5f  |8. (mencr%=main_|
00005470  68 61 6e 64 6c 65 25 20  80 20 62 6c 6f 63 6b 25  |handle% . block%|
00005480  21 33 32 3d 32 29 20 8c  20 f2 6f 70 65 6e 70 6c  |!32=2) . .openpl|
00005490  61 79 65 72 73 0d 20 26  05 cb 0d 20 30 05 e1 0d  |ayers. &... 0...|
000054a0  20 3a 05 20 0d 20 44 12  dd f2 6f 70 65 6e 67 72  | :. . D...opengr|
000054b0  61 70 68 69 63 73 0d 20  4e 1c 21 62 6c 6f 63 6b  |aphics. N.!block|
000054c0  25 3d 67 72 61 70 68 69  63 73 5f 68 61 6e 64 6c  |%=graphics_handl|
000054d0  65 25 0d 20 58 23 c8 99  22 57 69 6d 70 5f 47 65  |e%. X#.."Wimp_Ge|
000054e0  74 57 69 6e 64 6f 77 53  74 61 74 65 22 2c 2c 62  |tWindowState",,b|
000054f0  6c 6f 63 6b 25 0d 20 62  25 78 6f 66 66 73 65 74  |lock%. b%xoffset|
00005500  3d 62 6c 6f 63 6b 25 21  34 3a 79 6f 66 66 73 65  |=block%!4:yoffse|
00005510  74 3d 62 6c 6f 63 6b 25  21 38 0d 20 6c 18 21 62  |t=block%!8. l.!b|
00005520  6c 6f 63 6b 25 3d 70 61  6e 65 5f 68 61 6e 64 6c  |lock%=pane_handl|
00005530  65 25 0d 20 76 23 c8 99  22 57 69 6d 70 5f 47 65  |e%. v#.."Wimp_Ge|
00005540  74 57 69 6e 64 6f 77 53  74 61 74 65 22 2c 2c 62  |tWindowState",,b|
00005550  6c 6f 63 6b 25 0d 20 80  17 62 6c 6f 63 6b 25 21  |lock%. ..block%!|
00005560  34 3d 78 6f 66 66 73 65  74 2b 31 36 0d 20 8a 17  |4=xoffset+16. ..|
00005570  62 6c 6f 63 6b 25 21 38  3d 79 6f 66 66 73 65 74  |block%!8=yoffset|
00005580  2b 38 38 0d 20 94 1a 62  6c 6f 63 6b 25 21 31 32  |+88. ..block%!12|
00005590  3d 62 6c 6f 63 6b 25 21  34 2b 32 30 34 0d 20 9e  |=block%!4+204. .|
000055a0  1a 62 6c 6f 63 6b 25 21  31 36 3d 62 6c 6f 63 6b  |.block%!16=block|
000055b0  25 21 38 2b 31 35 36 0d  20 a8 1f c8 99 22 57 69  |%!8+156. ...."Wi|
000055c0  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
000055d0  62 6c 6f 63 6b 25 0d 20  b2 1c 21 62 6c 6f 63 6b  |block%. ..!block|
000055e0  25 3d 67 72 61 70 68 69  63 73 5f 68 61 6e 64 6c  |%=graphics_handl|
000055f0  65 25 0d 20 bc 23 c8 99  22 57 69 6d 70 5f 47 65  |e%. .#.."Wimp_Ge|
00005600  74 57 69 6e 64 6f 77 53  74 61 74 65 22 2c 2c 62  |tWindowState",,b|
00005610  6c 6f 63 6b 25 0d 20 c6  1a 62 6c 6f 63 6b 25 21  |lock%. ..block%!|
00005620  32 38 3d 70 61 6e 65 5f  68 61 6e 64 6c 65 25 0d  |28=pane_handle%.|
00005630  20 d0 1f c8 99 22 57 69  6d 70 5f 4f 70 65 6e 57  | ...."Wimp_OpenW|
00005640  69 6e 64 6f 77 22 2c 2c  62 6c 6f 63 6b 25 0d 20  |indow",,block%. |
00005650  da 17 f2 67 72 63 6c 69  63 6b 65 64 28 6c 67 72  |...grclicked(lgr|
00005660  6c 64 2d 31 29 0d 20 e4  14 f2 70 61 6e 65 6d 6f  |ld-1). ...panemo|
00005670  76 65 28 6c 67 72 6c 64  29 0d 20 ee 05 e1 0d 20  |ve(lgrld). .... |
00005680  f8 05 20 0d 21 02 0a dd  f2 6f 70 65 6e 0d 21 0c  |.. .!....open.!.|
00005690  20 e7 20 21 62 6c 6f 63  6b 25 3d 67 72 61 70 68  | . !block%=graph|
000056a0  69 63 73 5f 68 61 6e 64  6c 65 25 20 8c 0d 21 16  |ics_handle% ..!.|
000056b0  25 78 6f 66 66 73 65 74  3d 62 6c 6f 63 6b 25 21  |%xoffset=block%!|
000056c0  34 3a 79 6f 66 66 73 65  74 3d 62 6c 6f 63 6b 25  |4:yoffset=block%|
000056d0  21 38 0d 21 20 29 78 6f  66 66 73 65 74 32 3d 62  |!8.! )xoffset2=b|
000056e0  6c 6f 63 6b 25 21 31 32  3a 79 6f 66 66 73 65 74  |lock%!12:yoffset|
000056f0  32 3d 62 6c 6f 63 6b 25  21 31 36 0d 21 2a 18 21  |2=block%!16.!*.!|
00005700  62 6c 6f 63 6b 25 3d 70  61 6e 65 5f 68 61 6e 64  |block%=pane_hand|
00005710  6c 65 25 0d 21 34 23 c8  99 22 57 69 6d 70 5f 47  |le%.!4#.."Wimp_G|
00005720  65 74 57 69 6e 64 6f 77  53 74 61 74 65 22 2c 2c  |etWindowState",,|
00005730  62 6c 6f 63 6b 25 0d 21  3e 17 62 6c 6f 63 6b 25  |block%.!>.block%|
00005740  21 34 3d 78 6f 66 66 73  65 74 2b 31 36 0d 21 48  |!4=xoffset+16.!H|
00005750  17 62 6c 6f 63 6b 25 21  38 3d 79 6f 66 66 73 65  |.block%!8=yoffse|
00005760  74 2b 38 38 0d 21 52 1a  62 6c 6f 63 6b 25 21 31  |t+88.!R.block%!1|
00005770  32 3d 62 6c 6f 63 6b 25  21 34 2b 32 30 34 0d 21  |2=block%!4+204.!|
00005780  5c 1a 62 6c 6f 63 6b 25  21 31 36 3d 62 6c 6f 63  |\.block%!16=bloc|
00005790  6b 25 21 38 2b 31 35 36  0d 21 66 1f c8 99 22 57  |k%!8+156.!f..."W|
000057a0  69 6d 70 5f 4f 70 65 6e  57 69 6e 64 6f 77 22 2c  |imp_OpenWindow",|
000057b0  2c 62 6c 6f 63 6b 25 0d  21 70 1c 21 62 6c 6f 63  |,block%.!p.!bloc|
000057c0  6b 25 3d 67 72 61 70 68  69 63 73 5f 68 61 6e 64  |k%=graphics_hand|
000057d0  6c 65 25 0d 21 7a 23 c8  99 22 57 69 6d 70 5f 47  |le%.!z#.."Wimp_G|
000057e0  65 74 57 69 6e 64 6f 77  53 74 61 74 65 22 2c 2c  |etWindowState",,|
000057f0  62 6c 6f 63 6b 25 0d 21  84 25 62 6c 6f 63 6b 25  |block%.!.%block%|
00005800  21 34 3d 78 6f 66 66 73  65 74 3a 62 6c 6f 63 6b  |!4=xoffset:block|
00005810  25 21 38 3d 79 6f 66 66  73 65 74 0d 21 8e 29 62  |%!8=yoffset.!.)b|
00005820  6c 6f 63 6b 25 21 31 32  3d 78 6f 66 66 73 65 74  |lock%!12=xoffset|
00005830  32 3a 62 6c 6f 63 6b 25  21 31 36 3d 79 6f 66 66  |2:block%!16=yoff|
00005840  73 65 74 32 0d 21 98 1a  62 6c 6f 63 6b 25 21 32  |set2.!..block%!2|
00005850  38 3d 70 61 6e 65 5f 68  61 6e 64 6c 65 25 0d 21  |8=pane_handle%.!|
00005860  a2 1f c8 99 22 57 69 6d  70 5f 4f 70 65 6e 57 69  |...."Wimp_OpenWi|
00005870  6e 64 6f 77 22 2c 2c 62  6c 6f 63 6b 25 0d 21 ac  |ndow",,block%.!.|
00005880  05 cc 0d 21 b6 1f c8 99  22 57 69 6d 70 5f 4f 70  |...!...."Wimp_Op|
00005890  65 6e 57 69 6e 64 6f 77  22 2c 2c 62 6c 6f 63 6b  |enWindow",,block|
000058a0  25 0d 21 c0 05 cd 0d 21  ca 05 e1 0d 21 d4 05 20  |%.!....!....!.. |
000058b0  0d 21 de 0b dd f2 63 6c  6f 73 65 0d 21 e8 27 e7  |.!....close.!.'.|
000058c0  20 21 62 6c 6f 63 6b 25  3d 6d 61 69 6e 5f 68 61  | !block%=main_ha|
000058d0  6e 64 6c 65 25 20 8c 20  6d 61 69 6e 6f 70 65 6e  |ndle% . mainopen|
000058e0  3d a3 0d 21 f2 20 e7 20  21 62 6c 6f 63 6b 25 3d  |=..!. . !block%=|
000058f0  67 72 61 70 68 69 63 73  5f 68 61 6e 64 6c 65 25  |graphics_handle%|
00005900  20 8c 0d 21 fc 20 c8 99  22 57 69 6d 70 5f 43 6c  | ..!. .."Wimp_Cl|
00005910  6f 73 65 57 69 6e 64 6f  77 22 2c 2c 62 6c 6f 63  |oseWindow",,bloc|
00005920  6b 25 0d 22 06 18 21 62  6c 6f 63 6b 25 3d 70 61  |k%."..!block%=pa|
00005930  6e 65 5f 68 61 6e 64 6c  65 25 0d 22 10 05 cd 0d  |ne_handle%."....|
00005940  22 1a 20 c8 99 22 57 69  6d 70 5f 43 6c 6f 73 65  |". .."Wimp_Close|
00005950  57 69 6e 64 6f 77 22 2c  2c 62 6c 6f 63 6b 25 0d  |Window",,block%.|
00005960  22 24 05 e1 0d 22 2e 05  20 0d 22 38 12 dd f2 73  |"$...".. ."8...s|
00005970  65 74 70 6c 79 72 6e 61  6d 65 73 0d 22 42 33 f2  |etplyrnames."B3.|
00005980  61 6c 74 65 72 49 63 6f  6e 28 6d 61 69 6e 5f 68  |alterIcon(main_h|
00005990  61 6e 64 6c 65 25 2c 70  63 6e 61 6d 65 31 2c 22  |andle%,pcname1,"|
000059a0  23 22 2b 50 6c 79 72 31  24 2c 30 2c 31 29 0d 22  |#"+Plyr1$,0,1)."|
000059b0  4c 33 f2 61 6c 74 65 72  49 63 6f 6e 28 6d 61 69  |L3.alterIcon(mai|
000059c0  6e 5f 68 61 6e 64 6c 65  25 2c 70 63 6e 61 6d 65  |n_handle%,pcname|
000059d0  32 2c 22 23 22 2b 50 6c  79 72 32 24 2c 30 2c 31  |2,"#"+Plyr2$,0,1|
000059e0  29 0d 22 56 05 e1 0d 22  60 05 20 0d 22 6a 0e dd  |)."V..."`. ."j..|
000059f0  a4 72 6f 77 28 72 63 68  29 0d 22 74 17 e7 20 72  |.row(rch)."t.. r|
00005a00  63 68 3c 30 20 8c 20 3a  3d 72 63 68 2b 31 30 30  |ch<0 . :=rch+100|
00005a10  0d 22 7e 14 72 63 68 3d  28 72 63 68 20 81 20 38  |."~.rch=(rch . 8|
00005a20  29 20 2b 31 0d 22 88 1b  e7 20 72 63 68 3e 30 20  |) +1."... rch>0 |
00005a30  80 20 72 63 68 3c 39 20  8c 20 3a 3d 72 63 68 0d  |. rch<9 . :=rch.|
00005a40  22 92 0e 3d 28 72 63 68  2b 31 30 30 29 0d 22 9c  |"..=(rch+100).".|
00005a50  05 20 0d 22 a6 36 dd 20  f2 61 6c 74 65 72 49 63  |. .".6. .alterIc|
00005a60  6f 6e 28 77 68 61 6e 64  6c 65 25 2c 69 68 61 6e  |on(whandle%,ihan|
00005a70  64 6c 65 25 2c 74 65 78  74 24 2c 66 6c 67 73 25  |dle%,text$,flgs%|
00005a80  2c 72 65 64 72 61 77 29  0d 22 b0 45 62 6c 6f 63  |,redraw).".Ebloc|
00005a90  6b 25 21 30 3d 77 68 61  6e 64 6c 65 25 3a 62 6c  |k%!0=whandle%:bl|
00005aa0  6f 63 6b 25 21 34 3d 69  68 61 6e 64 6c 65 25 3a  |ock%!4=ihandle%:|
00005ab0  c8 99 22 57 69 6d 70 5f  47 65 74 49 63 6f 6e 53  |.."Wimp_GetIconS|
00005ac0  74 61 74 65 22 2c 2c 62  6c 6f 63 6b 25 0d 22 ba  |tate",,block%.".|
00005ad0  15 e7 20 c0 74 65 78 74  24 2c 31 29 3d 22 21 22  |.. .text$,1)="!"|
00005ae0  20 8c 0d 22 c4 21 24 62  6c 6f 63 6b 25 21 32 38  | ..".!$block%!28|
00005af0  3d c2 74 65 78 74 24 2c  a9 28 74 65 78 74 24 29  |=.text$,.(text$)|
00005b00  2d 31 29 0d 22 ce 05 cd  0d 22 d8 15 e7 20 c0 74  |-1)."...."... .t|
00005b10  65 78 74 24 2c 31 29 3d  22 23 22 20 8c 0d 22 e2  |ext$,1)="#" ..".|
00005b20  23 24 28 62 6c 6f 63 6b  25 2b 32 38 29 3d c2 74  |#$(block%+28)=.t|
00005b30  65 78 74 24 2c a9 28 74  65 78 74 24 29 2d 31 29  |ext$,.(text$)-1)|
00005b40  0d 22 ec 5b e7 20 66 6c  67 73 25 3d 30 20 8c 20  |.".[. flgs%=0 . |
00005b50  c8 99 22 57 69 6d 70 5f  44 65 6c 65 74 65 49 63  |.."Wimp_DeleteIc|
00005b60  6f 6e 22 2c 2c 62 6c 6f  63 6b 25 3a 62 6c 6f 63  |on",,block%:bloc|
00005b70  6b 25 21 34 3d 77 68 61  6e 64 6c 65 25 3a c8 99  |k%!4=whandle%:..|
00005b80  22 57 69 6d 70 5f 43 72  65 61 74 65 49 63 6f 6e  |"Wimp_CreateIcon|
00005b90  22 2c 2c 62 6c 6f 63 6b  25 2b 34 0d 22 f6 05 cd  |",,block%+4."...|
00005ba0  0d 23 00 10 e7 20 66 6c  67 73 25 3c 3e 30 20 8c  |.#... flgs%<>0 .|
00005bb0  0d 23 0a 1f c8 99 22 57  69 6d 70 5f 44 65 6c 65  |.#...."Wimp_Dele|
00005bc0  74 65 49 63 6f 6e 22 2c  2c 62 6c 6f 63 6b 25 0d  |teIcon",,block%.|
00005bd0  23 14 13 62 6c 6f 63 6b  25 21 32 34 3d 66 6c 67  |#..block%!24=flg|
00005be0  73 25 0d 23 1e 15 62 6c  6f 63 6b 25 21 34 3d 77  |s%.#..block%!4=w|
00005bf0  68 61 6e 64 6c 65 25 0d  23 28 21 c8 99 22 57 69  |handle%.#(!.."Wi|
00005c00  6d 70 5f 43 72 65 61 74  65 49 63 6f 6e 22 2c 2c  |mp_CreateIcon",,|
00005c10  62 6c 6f 63 6b 25 2b 34  0d 23 32 05 cd 0d 23 3c  |block%+4.#2...#<|
00005c20  12 e7 20 72 65 64 72 61  77 3d 30 20 8c 20 e1 0d  |.. redraw=0 . ..|
00005c30  23 46 48 c8 99 22 57 69  6d 70 5f 46 6f 72 63 65  |#FH.."Wimp_Force|
00005c40  52 65 64 72 61 77 22 2c  77 68 61 6e 64 6c 65 25  |Redraw",whandle%|
00005c50  2c 62 6c 6f 63 6b 25 21  38 2c 62 6c 6f 63 6b 25  |,block%!8,block%|
00005c60  21 31 32 2c 62 6c 6f 63  6b 25 21 31 36 2c 62 6c  |!12,block%!16,bl|
00005c70  6f 63 6b 25 21 32 30 0d  23 50 05 e1 0d 23 5a 05  |ock%!20.#P...#Z.|
00005c80  20 0d 23 64 1d dd f2 75  6e 67 72 65 79 6d 65 6e  | .#d...ungreymen|
00005c90  75 28 67 72 31 2c 67 72  32 2c 67 72 33 29 0d 23  |u(gr1,gr2,gr3).#|
00005ca0  6e 1d e7 20 67 72 31 20  8c 20 6d 61 69 6e 6d 21  |n.. gr1 . mainm!|
00005cb0  36 30 3d 26 37 30 30 30  30 32 31 0d 23 78 1e e7  |60=&7000021.#x..|
00005cc0  20 67 72 32 20 8c 20 6d  61 69 6e 6d 21 31 35 36  | gr2 . mainm!156|
00005cd0  3d 26 37 30 30 30 30 32  31 0d 23 82 1e e7 20 67  |=&7000021.#... g|
00005ce0  72 33 20 8c 20 6d 61 69  6e 6d 21 31 38 30 3d 26  |r3 . mainm!180=&|
00005cf0  37 30 30 30 30 32 31 0d  23 8c 05 e1 0d 23 96 05  |7000021.#....#..|
00005d00  20 0d 23 a0 05 20 0d 23  aa 10 dd a4 74 69 64 79  | .#.. .#....tidy|
00005d10  28 6c 6f 63 25 29 0d 23  b4 0c 74 69 64 79 24 3d  |(loc%).#..tidy$=|
00005d20  22 22 0d 23 be 05 f5 0d  23 c8 13 74 69 64 79 24  |"".#....#..tidy$|
00005d30  2b 3d bd 28 3f 6c 6f 63  25 29 0d 23 d2 0b 6c 6f  |+=.(?loc%).#..lo|
00005d40  63 25 2b 3d 31 0d 23 dc  0e fd 20 3f 6c 6f 63 25  |c%+=1.#... ?loc%|
00005d50  3c 33 32 0d 23 e6 0a 3d  74 69 64 79 24 0d 23 f0  |<32.#..=tidy$.#.|
00005d60  1b dd f2 6c 6f 61 64 67  72 61 70 68 69 63 73 28  |...loadgraphics(|
00005d70  67 72 66 69 6c 65 24 29  0d 23 fa 14 e7 20 67 72  |grfile$).#... gr|
00005d80  66 69 6c 65 24 3d 22 22  20 8c 20 e1 0d 24 04 0f  |file$="" . ..$..|
00005d90  41 25 3d 8e 67 72 66 69  6c 65 24 0d 24 0e 0e 70  |A%=.grfile$.$..p|
00005da0  72 65 73 65 6e 74 3d 41  25 0d 24 18 27 6c 65 6e  |resent=A%.$.'len|
00005db0  73 70 3d a2 23 41 25 3a  6c 65 6e 73 70 2b 3d 28  |sp=.#A%:lensp+=(|
00005dc0  28 6c 65 6e 73 70 2d 36  39 30 30 30 29 2a 39 29  |(lensp-69000)*9)|
00005dd0  0d 24 22 08 d9 23 41 25  0d 24 2c 87 e7 20 70 72  |.$"..#A%.$,.. pr|
00005de0  65 73 65 6e 74 3d 30 20  8c 20 f2 65 72 72 6f 72  |esent=0 . .error|
00005df0  28 22 55 6e 61 62 6c 65  20 74 6f 20 6c 6f 61 64  |("Unable to load|
00005e00  20 67 72 61 70 68 69 63  73 20 66 69 6c 65 20 2d  | graphics file -|
00005e10  20 70 65 72 68 61 70 73  20 74 68 65 20 44 72 61  | perhaps the Dra|
00005e20  75 67 68 74 73 20 64 69  73 63 20 69 73 20 6e 6f  |ughts disc is no|
00005e30  74 20 70 72 65 73 65 6e  74 22 2c a3 29 3a 21 62  |t present",.):!b|
00005e40  6c 6f 63 6b 25 3d 67 72  61 70 68 69 63 73 5f 68  |lock%=graphics_h|
00005e50  61 6e 64 6c 65 25 3a f2  63 6c 6f 73 65 3a e1 0d  |andle%:.close:..|
00005e60  24 36 14 c8 99 22 48 6f  75 72 67 6c 61 73 73 5f  |$6..."Hourglass_|
00005e70  4f 6e 22 0d 24 40 10 e7  20 69 6e 6c 6f 61 64 3d  |On".$@.. inload=|
00005e80  a3 20 8c 0d 24 4a 2c c8  99 22 58 4f 53 5f 53 70  |. ..$J,.."XOS_Sp|
00005e90  72 69 74 65 4f 70 22 2c  32 35 36 2b 32 35 2c 73  |riteOp",256+25,s|
00005ea0  70 72 69 74 65 73 25 2c  22 62 6f 61 72 64 22 0d  |prites%,"board".|
00005eb0  24 54 0a e3 61 3d 31 b8  34 0d 24 5e 0a e3 62 3d  |$T..a=1.4.$^..b=|
00005ec0  30 b8 39 0d 24 68 33 c8  99 22 58 4f 53 5f 53 70  |0.9.$h3.."XOS_Sp|
00005ed0  72 69 74 65 4f 70 22 2c  32 35 36 2b 32 35 2c 73  |riteOp",256+25,s|
00005ee0  70 72 69 74 65 73 25 2c  22 73 71 75 61 72 65 22  |prites%,"square"|
00005ef0  2b c3 61 2b c3 62 0d 24  72 07 ed 3a ed 0d 24 7c  |+.a+.b.$r..:..$||
00005f00  05 cd 0d 24 86 1d f2 73  6c 6f 74 73 69 7a 65 28  |...$...slotsize(|
00005f10  73 6c 6f 74 73 69 7a 65  2b 6c 65 6e 73 70 29 0d  |slotsize+lensp).|
00005f20  24 90 1e e7 20 6e 73 6c  6f 74 3c 28 73 6c 6f 74  |$... nslot<(slot|
00005f30  73 69 7a 65 2b 6c 65 6e  73 70 29 20 8c 0d 24 9a  |size+lensp) ..$.|
00005f40  76 f2 65 72 72 6f 72 28  22 55 6e 61 62 6c 65 20  |v.error("Unable |
00005f50  74 6f 20 61 6c 6c 6f 63  61 74 65 20 73 75 66 66  |to allocate suff|
00005f60  69 63 69 65 6e 74 20 6d  65 6d 6f 72 79 20 66 6f  |icient memory fo|
00005f70  72 20 67 72 61 70 68 69  63 73 20 66 69 6c 65 20  |r graphics file |
00005f80  2d 20 61 70 70 72 6f 78  69 6d 61 74 65 6c 79 20  |- approximately |
00005f90  22 2b c3 28 6c 65 6e 73  70 20 81 20 31 30 32 34  |"+.(lensp . 1024|
00005fa0  29 2b 22 6b 20 69 73 20  6e 65 65 64 65 64 2e 22  |)+"k is needed."|
00005fb0  2c 30 29 0d 24 a4 23 e7  20 69 6e 6c 6f 61 64 3d  |,0).$.#. inload=|
00005fc0  b9 20 80 20 66 69 72 73  74 6c 6f 61 64 3d b9 20  |. . firstload=. |
00005fd0  8c 20 f2 65 6e 64 0d 24  ae 05 cd 0d 24 b8 34 e7  |. .end.$....$.4.|
00005fe0  20 6e 73 6c 6f 74 3c 28  73 6c 6f 74 73 69 7a 65  | nslot<(slotsize|
00005ff0  2b 6c 65 6e 73 70 29 20  8c 20 f2 73 6c 6f 74 73  |+lensp) . .slots|
00006000  69 7a 65 28 73 6c 6f 74  73 69 7a 65 29 3a e1 0d  |ize(slotsize):..|
00006010  24 c2 14 21 73 70 72 69  74 65 73 25 2b 3d 6c 65  |$..!sprites%+=le|
00006020  6e 73 70 0d 24 cc 28 c8  99 22 4f 53 5f 53 70 72  |nsp.$.(.."OS_Spr|
00006030  69 74 65 4f 70 22 2c 32  36 37 2c 73 70 72 69 74  |iteOp",267,sprit|
00006040  65 73 25 2c 67 72 66 69  6c 65 24 0d 24 d6 31 c8  |es%,grfile$.$.1.|
00006050  99 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 32  |."OS_SpriteOp",2|
00006060  35 36 2b 31 33 2c 73 70  72 69 74 65 73 25 2c 62  |56+13,sprites%,b|
00006070  6c 6f 63 6b 25 2c 32 35  36 2c 31 37 0d 24 e0 18  |lock%,256,17.$..|
00006080  50 6c 79 72 31 24 3d a4  74 69 64 79 28 62 6c 6f  |Plyr1$=.tidy(blo|
00006090  63 6b 25 29 0d 24 ea 31  c8 99 22 4f 53 5f 53 70  |ck%).$.1.."OS_Sp|
000060a0  72 69 74 65 4f 70 22 2c  32 35 36 2b 31 33 2c 73  |riteOp",256+13,s|
000060b0  70 72 69 74 65 73 25 2c  62 6c 6f 63 6b 25 2c 32  |prites%,block%,2|
000060c0  35 36 2c 31 38 0d 24 f4  18 50 6c 79 72 32 24 3d  |56,18.$..Plyr2$=|
000060d0  a4 74 69 64 79 28 62 6c  6f 63 6b 25 29 0d 24 fe  |.tidy(block%).$.|
000060e0  35 c8 99 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |5.."OS_SpriteOp"|
000060f0  2c 32 35 36 2b 32 36 2c  73 70 72 69 74 65 73 25  |,256+26,sprites%|
00006100  2c 50 6c 79 72 31 24 2c  22 73 71 75 61 72 65 31  |,Plyr1$,"square1|
00006110  30 22 0d 25 08 35 c8 99  22 4f 53 5f 53 70 72 69  |0".%.5.."OS_Spri|
00006120  74 65 4f 70 22 2c 32 35  36 2b 32 36 2c 73 70 72  |teOp",256+26,spr|
00006130  69 74 65 73 25 2c 50 6c  79 72 32 24 2c 22 73 71  |ites%,Plyr2$,"sq|
00006140  75 61 72 65 32 30 22 0d  25 12 1f 50 6c 79 72 31  |uare20".%..Plyr1|
00006150  24 3d c0 50 6c 79 72 31  24 2c a9 28 50 6c 79 72  |$=.Plyr1$,.(Plyr|
00006160  31 24 29 2d 32 29 0d 25  1c 1f 50 6c 79 72 32 24  |1$)-2).%..Plyr2$|
00006170  3d c0 50 6c 79 72 32 24  2c a9 28 50 6c 79 72 32  |=.Plyr2$,.(Plyr2|
00006180  24 29 2d 32 29 0d 25 26  0b e3 20 61 3d 31 b8 34  |$)-2).%&.. a=1.4|
00006190  0d 25 30 3c c8 99 22 4f  53 5f 53 70 72 69 74 65  |.%0<.."OS_Sprite|
000061a0  4f 70 22 2c 32 35 36 2b  34 30 2c 73 70 72 69 74  |Op",256+40,sprit|
000061b0  65 73 25 2c 22 73 71 75  61 72 65 22 2b c3 61 2b  |es%,"square"+.a+|
000061c0  22 30 22 20 b8 20 2c 2c  2c 77 2c 68 0d 25 3a 0b  |"0" . ,,,w,h.%:.|
000061d0  e3 20 62 3d 31 b8 38 0d  25 44 4f 67 72 73 69 7a  |. b=1.8.%DOgrsiz|
000061e0  65 73 28 30 2c 28 61 2a  31 30 29 2b 62 29 3d 32  |es(0,(a*10)+b)=2|
000061f0  2a 28 77 2a 28 28 31 36  2b 62 29 2f 32 34 29 29  |*(w*((16+b)/24))|
00006200  3a 67 72 73 69 7a 65 73  28 31 2c 28 61 2a 31 30  |:grsizes(1,(a*10|
00006210  29 2b 62 29 3d 34 2a 28  68 2a 28 28 31 36 2b 62  |)+b)=4*(h*((16+b|
00006220  29 2f 32 34 29 29 0d 25  4e 53 c8 99 22 4f 53 5f  |)/24)).%NS.."OS_|
00006230  53 70 72 69 74 65 4f 70  22 2c 32 35 36 2b 31 35  |SpriteOp",256+15|
00006240  2c 73 70 72 69 74 65 73  25 2c 22 73 71 75 61 72  |,sprites%,"squar|
00006250  65 22 2b c3 61 2b c3 62  2c 30 2c 77 2a 28 28 31  |e"+.a+.b,0,w*((1|
00006260  36 2b 62 29 2f 32 34 29  2c 68 2a 28 28 31 36 2b  |6+b)/24),h*((16+|
00006270  62 29 2f 32 34 29 2c 31  32 0d 25 58 32 c8 99 22  |b)/24),12.%X2.."|
00006280  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 32 35 36  |OS_SpriteOp",256|
00006290  2b 32 39 2c 73 70 72 69  74 65 73 25 2c 22 73 71  |+29,sprites%,"sq|
000062a0  75 61 72 65 22 2b c3 61  2b c3 62 0d 25 62 32 c8  |uare"+.a+.b.%b2.|
000062b0  99 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 32  |."OS_SpriteOp",2|
000062c0  35 36 2b 36 30 2c 73 70  72 69 74 65 73 25 2c 22  |56+60,sprites%,"|
000062d0  73 71 75 61 72 65 22 2b  c3 61 2b c3 62 0d 25 6c  |square"+.a+.b.%l|
000062e0  1e 21 62 6c 6f 63 6b 25  3d 31 36 2b 62 3a 62 6c  |.!block%=16+b:bl|
000062f0  6f 63 6b 25 21 34 3d 31  36 2b 62 0d 25 76 05 20  |ock%!4=16+b.%v. |
00006300  0d 25 80 1c 62 6c 6f 63  6b 25 21 38 3d 32 34 3a  |.%..block%!8=24:|
00006310  62 6c 6f 63 6b 25 21 31  32 3d 32 34 0d 25 8a 40  |block%!12=24.%.@|
00006320  c8 99 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |.."OS_SpriteOp",|
00006330  32 35 36 2b 35 32 2c 73  70 72 69 74 65 73 25 2c  |256+52,sprites%,|
00006340  22 73 71 75 61 72 65 22  2b c3 61 2b 22 30 22 2c  |"square"+.a+"0",|
00006350  30 2c 30 2c 30 2c 62 6c  6f 63 6b 25 0d 25 94 32  |0,0,0,block%.%.2|
00006360  c8 99 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |.."OS_SpriteOp",|
00006370  32 35 36 2b 36 31 2c 73  70 72 69 74 65 73 25 2c  |256+61,sprites%,|
00006380  22 73 71 75 61 72 65 22  2b c3 61 2b c3 62 0d 25  |"square"+.a+.b.%|
00006390  9e 06 e6 30 0d 25 a8 47  c8 99 22 4f 53 5f 53 70  |...0.%.G.."OS_Sp|
000063a0  72 69 74 65 4f 70 22 2c  32 35 36 2b 35 32 2c 73  |riteOp",256+52,s|
000063b0  70 72 69 74 65 73 25 2c  22 73 71 75 61 72 65 22  |prites%,"square"|
000063c0  2b c3 61 2b 22 30 22 2c  30 2c 30 2c 26 38 2c 62  |+.a+"0",0,0,&8,b|
000063d0  6c 6f 63 6b 25 2c 70 69  78 65 6c 0d 25 b2 05 ed  |lock%,pixel.%...|
000063e0  0d 25 bc 05 ed 0d 25 c6  25 c8 99 22 4f 53 5f 53  |.%....%.%.."OS_S|
000063f0  70 72 69 74 65 4f 70 22  2c 32 35 36 2b 36 30 2c  |priteOp",256+60,|
00006400  73 70 72 69 74 65 73 25  2c 30 0d 25 d0 10 6c 6f  |sprites%,0.%..lo|
00006410  61 64 65 64 3d 6c 67 72  6c 64 0d 25 da 11 f2 73  |aded=lgrld.%...s|
00006420  65 74 70 6c 79 72 6e 61  6d 65 73 0d 25 e4 38 62  |etplyrnames.%.8b|
00006430  64 69 6d 65 6e 73 3d 64  69 6d 65 6e 73 69 6f 6e  |dimens=dimension|
00006440  3a 64 69 6d 65 6e 73 69  6f 6e 3d 30 3a f2 73 65  |:dimension=0:.se|
00006450  74 64 69 6d 65 6e 73 69  6f 6e 28 62 64 69 6d 65  |tdimension(bdime|
00006460  6e 73 29 0d 25 ee 15 c8  99 22 48 6f 75 72 67 6c  |ns).%...."Hourgl|
00006470  61 73 73 5f 4f 66 66 22  0d 25 f8 05 e1 0d 26 02  |ass_Off".%....&.|
00006480  05 20 0d 26 0c 0f dd f2  73 74 61 72 74 64 72 61  |. .&....startdra|
00006490  67 0d 26 16 18 21 62 6c  6f 63 6b 25 3d 73 61 76  |g.&..!block%=sav|
000064a0  65 5f 68 61 6e 64 6c 65  25 0d 26 20 23 c8 99 22  |e_handle%.& #.."|
000064b0  57 69 6d 70 5f 47 65 74  57 69 6e 64 6f 77 53 74  |Wimp_GetWindowSt|
000064c0  61 74 65 22 2c 2c 62 6c  6f 63 6b 25 0d 26 2a 1d  |ate",,block%.&*.|
000064d0  79 73 69 7a 65 25 3d 62  6c 6f 63 6b 25 21 31 36  |ysize%=block%!16|
000064e0  2d 62 6c 6f 63 6b 25 21  38 0d 26 34 1b 78 25 3d  |-block%!8.&4.x%=|
000064f0  62 6c 6f 63 6b 25 21 34  3a 79 25 3d 62 6c 6f 63  |block%!4:y%=bloc|
00006500  6b 25 21 38 0d 26 3e 0e  62 6c 6f 63 6b 25 21 34  |k%!8.&>.block%!4|
00006510  3d 30 0d 26 48 21 c8 99  22 57 69 6d 70 5f 47 65  |=0.&H!.."Wimp_Ge|
00006520  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 62 6c 6f  |tIconState",,blo|
00006530  63 6b 25 0d 26 52 0d 21  62 6c 6f 63 6b 25 3d 30  |ck%.&R.!block%=0|
00006540  0d 26 5c 0e 62 6c 6f 63  6b 25 21 34 3d 35 0d 26  |.&\.block%!4=5.&|
00006550  66 10 62 6c 6f 63 6b 25  21 38 2b 3d 78 25 0d 26  |f.block%!8+=x%.&|
00006560  70 18 62 6c 6f 63 6b 25  21 31 32 2b 3d 79 25 2b  |p.block%!12+=y%+|
00006570  79 73 69 7a 65 25 0d 26  7a 11 62 6c 6f 63 6b 25  |ysize%.&z.block%|
00006580  21 31 36 2b 3d 78 25 0d  26 84 18 62 6c 6f 63 6b  |!16+=x%.&..block|
00006590  25 21 32 30 2b 3d 79 25  2b 79 73 69 7a 65 25 0d  |%!20+=y%+ysize%.|
000065a0  26 8e 0f 62 6c 6f 63 6b  25 21 32 34 3d 30 0d 26  |&..block%!24=0.&|
000065b0  98 0f 62 6c 6f 63 6b 25  21 32 38 3d 30 0d 26 a2  |..block%!28=0.&.|
000065c0  2c c8 99 22 4f 53 5f 52  65 61 64 4d 6f 64 65 56  |,.."OS_ReadModeV|
000065d0  61 72 69 61 62 6c 65 22  2c 2d 31 2c 34 20 b8 20  |ariable",-1,4 . |
000065e0  2c 2c 78 74 65 6e 74 73  68 0d 26 ac 2c c8 99 22  |,,xtentsh.&.,.."|
000065f0  4f 53 5f 52 65 61 64 4d  6f 64 65 56 61 72 69 61  |OS_ReadModeVaria|
00006600  62 6c 65 22 2c 2d 31 2c  35 20 b8 20 2c 2c 79 74  |ble",-1,5 . ,,yt|
00006610  65 6e 74 73 68 0d 26 b6  2b c8 99 22 4f 53 5f 52  |entsh.&.+.."OS_R|
00006620  65 61 64 4d 6f 64 65 56  61 72 69 61 62 6c 65 22  |eadModeVariable"|
00006630  2c 2d 31 2c 31 31 20 b8  20 2c 2c 78 74 65 6e 74  |,-1,11 . ,,xtent|
00006640  0d 26 c0 2b c8 99 22 4f  53 5f 52 65 61 64 4d 6f  |.&.+.."OS_ReadMo|
00006650  64 65 56 61 72 69 61 62  6c 65 22 2c 2d 31 2c 31  |deVariable",-1,1|
00006660  32 20 b8 20 2c 2c 79 74  65 6e 74 0d 26 ca 25 62  |2 . ,,ytent.&.%b|
00006670  6c 6f 63 6b 25 21 33 32  3d 28 28 78 74 65 6e 74  |lock%!32=((xtent|
00006680  2b 31 29 2a 32 5e 78 74  65 6e 74 73 68 29 2d 31  |+1)*2^xtentsh)-1|
00006690  0d 26 d4 25 62 6c 6f 63  6b 25 21 33 36 3d 28 28  |.&.%block%!36=((|
000066a0  79 74 65 6e 74 2b 31 29  2a 32 5e 79 74 65 6e 74  |ytent+1)*2^ytent|
000066b0  73 68 29 2d 31 0d 26 de  1c c8 99 22 57 69 6d 70  |sh)-1.&...."Wimp|
000066c0  5f 44 72 61 67 42 6f 78  22 2c 2c 62 6c 6f 63 6b  |_DragBox",,block|
000066d0  25 0d 26 e8 05 e1 0d 26  f2 05 20 0d 26 fc 0e dd  |%.&....&.. .&...|
000066e0  f2 64 72 61 67 64 6f 6e  65 0d 27 06 23 c8 99 22  |.dragdone.'.#.."|
000066f0  57 69 6d 70 5f 47 65 74  50 6f 69 6e 74 65 72 49  |Wimp_GetPointerI|
00006700  6e 66 6f 22 2c 2c 62 6c  6f 63 6b 25 0d 27 10 0e  |nfo",,block%.'..|
00006710  21 62 6c 6f 63 6b 25 3d  36 30 0d 27 1a 17 62 6c  |!block%=60.'..bl|
00006720  6f 63 6b 25 21 32 30 3d  62 6c 6f 63 6b 25 21 31  |ock%!20=block%!1|
00006730  32 0d 27 24 0f 62 6c 6f  63 6b 25 21 31 32 3d 30  |2.'$.block%!12=0|
00006740  0d 27 2e 17 62 6c 6f 63  6b 25 21 32 34 3d 62 6c  |.'..block%!24=bl|
00006750  6f 63 6b 25 21 31 36 0d  27 38 0f 62 6c 6f 63 6b  |ock%!16.'8.block|
00006760  25 21 31 36 3d 31 0d 27  42 15 62 6c 6f 63 6b 25  |%!16=1.'B.block%|
00006770  21 32 38 3d 21 62 6c 6f  63 6b 25 0d 27 4c 16 62  |!28=!block%.'L.b|
00006780  6c 6f 63 6b 25 21 33 32  3d 62 6c 6f 63 6b 25 21  |lock%!32=block%!|
00006790  34 0d 27 56 12 62 6c 6f  63 6b 25 21 34 30 3d 26  |4.'V.block%!40=&|
000067a0  35 36 30 0d 27 60 34 24  28 62 6c 6f 63 6b 25 2b  |560.'`4$(block%+|
000067b0  34 34 29 3d a4 6c 61 73  74 62 69 74 28 a4 67 65  |44)=.lastbit(.ge|
000067c0  74 74 65 78 74 28 73 61  76 65 5f 68 61 6e 64 6c  |ttext(save_handl|
000067d0  65 25 2c 31 30 29 29 0d  27 6a 2c c8 99 22 57 69  |e%,10)).'j,.."Wi|
000067e0  6d 70 5f 53 65 6e 64 4d  65 73 73 61 67 65 22 2c  |mp_SendMessage",|
000067f0  31 37 2c 62 6c 6f 63 6b  25 2c 62 6c 6f 63 6b 25  |17,block%,block%|
00006800  21 32 30 0d 27 74 05 e1  0d 27 7e 05 20 0d 27 88  |!20.'t...'~. .'.|
00006810  12 dd a4 6c 61 73 74 62  69 74 28 6c 62 24 29 0d  |...lastbit(lb$).|
00006820  27 92 11 6c 62 72 24 3d  22 22 3a 6c 62 63 3d 30  |'..lbr$="":lbc=0|
00006830  0d 27 9c 05 f5 0d 27 a6  0a 6c 62 63 2b 3d 31 0d  |.'....'..lbc+=1.|
00006840  27 b0 12 6c 62 72 24 3d  c2 6c 62 24 2c 6c 62 63  |'..lbr$=.lb$,lbc|
00006850  29 0d 27 ba 23 fd 20 c0  6c 62 72 24 2c 31 29 3d  |).'.#. .lbr$,1)=|
00006860  22 2e 22 20 84 20 a9 28  6c 62 72 24 29 3d a9 28  |"." . .(lbr$)=.(|
00006870  6c 62 24 29 0d 27 c4 28  e7 20 c0 6c 62 24 2c 6c  |lb$).'.(. .lb$,l|
00006880  62 63 29 3d 22 2e 22 20  8c 20 3a 3d c2 6c 62 72  |bc)="." . :=.lbr|
00006890  24 2c a9 28 6c 62 72 24  29 2d 31 29 0d 27 ce 09  |$,.(lbr$)-1).'..|
000068a0  3d 6c 62 72 24 0d 27 d8  05 20 0d 27 e2 15 dd f2  |=lbr$.'.. .'....|
000068b0  73 61 76 65 28 73 61 76  65 6e 61 6d 65 24 29 0d  |save(savename$).|
000068c0  27 ec 59 e7 20 a7 73 61  76 65 6e 61 6d 65 24 2c  |'.Y. .savename$,|
000068d0  22 2e 22 29 3c 31 20 8c  20 f2 65 72 72 6f 72 28  |".")<1 . .error(|
000068e0  22 54 6f 20 73 61 76 65  2c 20 64 72 61 67 20 74  |"To save, drag t|
000068f0  68 65 20 66 69 6c 65 20  69 63 6f 6e 20 74 6f 20  |he file icon to |
00006900  61 20 64 69 72 65 63 74  6f 72 79 20 76 69 65 77  |a directory view|
00006910  65 72 22 2c a3 29 3a e1  0d 27 f6 14 c8 99 22 48  |er",.):..'...."H|
00006920  6f 75 72 67 6c 61 73 73  5f 4f 6e 22 0d 28 00 11  |ourglass_On".(..|
00006930  41 25 3d ae 73 61 76 65  6e 61 6d 65 24 0d 28 0a  |A%=.savename$.(.|
00006940  12 d5 23 41 25 2c 64 69  6d 65 6e 73 69 6f 6e 0d  |..#A%,dimension.|
00006950  28 14 0b d5 23 41 25 2c  47 6f 0d 28 1e 0e d5 23  |(...#A%,Go.(...#|
00006960  41 25 2c 50 6c 79 72 31  0d 28 28 0e d5 23 41 25  |A%,Plyr1.((..#A%|
00006970  2c 50 6c 79 72 32 0d 28  32 0f d5 23 41 25 2c 6c  |,Plyr2.(2..#A%,l|
00006980  65 76 65 6c 25 0d 28 3c  19 d5 23 41 25 2c 67 72  |evel%.(<..#A%,gr|
00006990  61 70 68 69 63 24 28 6c  67 72 6c 64 29 3b 0d 28  |aphic$(lgrld);.(|
000069a0  46 25 d5 23 41 25 2c c4  31 30 2d a9 28 67 72 61  |F%.#A%,.10-.(gra|
000069b0  70 68 69 63 24 28 6c 67  72 6c 64 29 29 2c 22 2e  |phic$(lgrld)),".|
000069c0  22 29 3b 0d 28 50 0c d5  23 41 25 2c 70 6f 73 0d  |");.(P..#A%,pos.|
000069d0  28 5a 14 e3 20 70 3d 30  b8 28 70 6f 73 2a 34 34  |(Z.. p=0.(pos*44|
000069e0  29 2d 31 0d 28 64 10 d5  23 41 25 2c 73 74 6f 72  |)-1.(d..#A%,stor|
000069f0  65 3f 70 0d 28 6e 05 ed  0d 28 78 08 d9 23 41 25  |e?p.(n...(x..#A%|
00006a00  0d 28 82 20 ff 22 73 65  74 74 79 70 65 20 22 2b  |.(. ."settype "+|
00006a10  73 61 76 65 6e 61 6d 65  24 2b 22 20 35 36 30 22  |savename$+" 560"|
00006a20  0d 28 8c 15 c8 99 22 48  6f 75 72 67 6c 61 73 73  |.(...."Hourglass|
00006a30  5f 4f 66 66 22 0d 28 96  2d e7 20 69 63 6f 6e 63  |_Off".(.-. iconc|
00006a40  6c 69 63 6b 65 64 3d a3  20 8c 20 c8 99 22 57 69  |licked=. . .."Wi|
00006a50  6d 70 5f 43 72 65 61 74  65 4d 65 6e 75 22 2c 2c  |mp_CreateMenu",,|
00006a60  2d 31 0d 28 a0 17 66 69  6c 65 6e 61 6d 65 24 3d  |-1.(..filename$=|
00006a70  73 61 76 65 6e 61 6d 65  24 0d 28 aa 31 f2 61 6c  |savename$.(.1.al|
00006a80  74 65 72 49 63 6f 6e 28  73 61 76 65 5f 68 61 6e  |terIcon(save_han|
00006a90  64 6c 65 25 2c 31 30 2c  22 21 22 2b 66 69 6c 65  |dle%,10,"!"+file|
00006aa0  6e 61 6d 65 24 2c 30 2c  31 29 0d 28 b4 05 e1 0d  |name$,0,1).(....|
00006ab0  28 be 05 20 0d 28 c8 0d  dd f2 63 6f 6e 63 65 64  |(.. .(....conced|
00006ac0  65 0d 28 d2 0e 70 6c 61  79 69 6e 67 25 3d a3 0d  |e.(..playing%=..|
00006ad0  28 dc 0e 63 6f 6e 63 65  64 65 64 3d b9 0d 28 e6  |(..conceded=..(.|
00006ae0  14 f2 67 72 65 79 6d 65  6e 75 28 30 2c b9 2c b9  |..greymenu(0,.,.|
00006af0  29 0d 28 f0 26 e7 20 47  6f 3d 31 20 8c 20 47 63  |).(.&. Go=1 . Gc|
00006b00  6e 24 3d 50 6c 79 72 31  24 20 8b 20 47 63 6e 24  |n$=Plyr1$ . Gcn$|
00006b10  3d 50 6c 79 72 32 24 0d  28 fa 39 e7 20 c2 47 63  |=Plyr2$.(.9. .Gc|
00006b20  6e 24 2c 31 29 3d 22 73  22 20 8c 20 47 63 6e 24  |n$,1)="s" . Gcn$|
00006b30  2b 3d 22 20 63 6f 6e 63  65 64 65 22 20 8b 20 47  |+=" concede" . G|
00006b40  63 6e 24 2b 3d 22 20 63  6f 6e 63 65 64 65 73 22  |cn$+=" concedes"|
00006b50  0d 29 04 34 f2 61 6c 74  65 72 49 63 6f 6e 28 6d  |.).4.alterIcon(m|
00006b60  61 69 6e 5f 68 61 6e 64  6c 65 25 2c 47 6f 74 65  |ain_handle%,Gote|
00006b70  78 74 69 63 6f 6e 2c 22  21 22 2b 47 63 6e 24 2c  |xticon,"!"+Gcn$,|
00006b80  30 2c 31 29 0d 29 0e 2b  f2 61 6c 74 65 72 49 63  |0,1).).+.alterIc|
00006b90  6f 6e 28 6d 61 69 6e 5f  68 61 6e 64 6c 65 25 2c  |on(main_handle%,|
00006ba0  67 6f 69 63 6f 6e 2c 22  23 22 2c 30 2c 31 29 0d  |goicon,"#",0,1).|
00006bb0  29 18 09 47 6f 2b 3d 32  0d 29 22 05 e1 0d 29 2c  |)..Go+=2.)"...),|
00006bc0  05 20 0d 29 36 0d dd f2  6e 65 77 67 61 6d 65 0d  |. .)6...newgame.|
00006bd0  29 40 0e 63 6f 6e 63 65  64 65 64 3d a3 0d 29 4a  |)@.conceded=..)J|
00006be0  14 c8 99 22 48 6f 75 72  67 6c 61 73 73 5f 4f 6e  |..."Hourglass_On|
00006bf0  22 0d 29 54 0c 69 6e 63  6f 6d 70 3d a3 0d 29 5e  |".)T.incomp=..)^|
00006c00  37 e7 20 69 6e 73 74 65  70 20 8c 20 69 6e 73 74  |7. instep . inst|
00006c10  65 70 3d a3 3a 21 62 6c  6f 63 6b 25 3d 73 74 65  |ep=.:!block%=ste|
00006c20  70 74 68 72 75 5f 68 61  6e 64 6c 65 25 3a f2 63  |pthru_handle%:.c|
00006c30  6c 6f 73 65 0d 29 68 0e  70 6c 61 79 69 6e 67 25  |lose.)h.playing%|
00006c40  3d b9 0d 29 72 40 f2 72  65 73 74 6f 72 65 28 30  |=..)r@.restore(0|
00006c50  29 3a c8 99 22 57 69 6d  70 5f 46 6f 72 63 65 52  |):.."Wimp_ForceR|
00006c60  65 64 72 61 77 22 2c 6d  61 69 6e 5f 68 61 6e 64  |edraw",main_hand|
00006c70  6c 65 25 2c 30 2c 2d 31  30 32 34 2c 31 32 38 30  |le%,0,-1024,1280|
00006c80  2c 30 0d 29 7c 16 f2 75  6e 67 72 65 79 6d 65 6e  |,0.)|..ungreymen|
00006c90  75 28 b9 2c b9 2c b9 29  0d 29 86 15 c8 99 22 48  |u(.,.,.).)...."H|
00006ca0  6f 75 72 67 6c 61 73 73  5f 4f 66 66 22 0d 29 90  |ourglass_Off".).|
00006cb0  05 e1 0d 29 9a 05 20 0d  29 a4 11 dd f2 63 68 65  |...).. .)....che|
00006cc0  63 6b 69 66 68 75 66 66  0d 29 ae 16 6e 68 75 66  |ckifhuff.)..nhuf|
00006cd0  66 28 29 3d 30 3a 6e 70  68 75 66 66 3d 30 0d 29  |f()=0:nphuff=0.)|
00006ce0  b8 0e e3 20 73 3d 30 20  b8 20 36 33 0d 29 c2 36  |... s=0 . 63.).6|
00006cf0  e7 20 73 71 75 61 72 65  28 73 29 3c 3e 30 20 80  |. square(s)<>0 .|
00006d00  20 28 73 71 75 61 72 65  28 73 29 3d 47 6f 20 84  | (square(s)=Go .|
00006d10  20 73 71 75 61 72 65 28  73 29 3d 47 6f 2b 32 29  | square(s)=Go+2)|
00006d20  20 8c 0d 29 cc 10 73 69  3d 73 71 75 61 72 65 28  | ..)..si=square(|
00006d30  73 29 0d 29 d6 16 e7 20  73 69 3d 31 20 8c 20 64  |s).)... si=1 . d|
00006d40  31 3d b9 3a 64 32 3d a3  0d 29 e0 16 e7 20 73 69  |1=.:d2=..)... si|
00006d50  3d 32 20 8c 20 64 31 3d  a3 3a 64 32 3d b9 0d 29  |=2 . d1=.:d2=..)|
00006d60  ea 16 e7 20 73 69 3e 32  20 8c 20 64 31 3d b9 3a  |... si>2 . d1=.:|
00006d70  64 32 3d b9 0d 29 f4 27  e7 20 28 a4 72 6f 77 28  |d2=..).'. (.row(|
00006d80  73 29 2d 32 20 3d 20 a4  72 6f 77 28 73 2d 31 34  |s)-2 = .row(s-14|
00006d90  29 29 20 80 20 64 31 3d  b9 20 8c 0d 29 fe 2e e7  |)) . d1=. ..)...|
00006da0  20 73 71 75 61 72 65 28  73 2d 31 34 29 3d 30 20  | square(s-14)=0 |
00006db0  80 20 a4 6f 70 70 28 73  2d 37 29 20 8c 20 f2 61  |. .opp(s-7) . .a|
00006dc0  64 64 68 75 66 66 28 73  29 0d 2a 08 05 cd 0d 2a  |ddhuff(s).*....*|
00006dd0  12 27 e7 20 28 a4 72 6f  77 28 73 29 2d 32 20 3d  |.'. (.row(s)-2 =|
00006de0  20 a4 72 6f 77 28 73 2d  31 38 29 29 20 80 20 64  | .row(s-18)) . d|
00006df0  31 3d b9 20 8c 0d 2a 1c  2e e7 20 73 71 75 61 72  |1=. ..*... squar|
00006e00  65 28 73 2d 31 38 29 3d  30 20 80 20 a4 6f 70 70  |e(s-18)=0 . .opp|
00006e10  28 73 2d 39 29 20 8c 20  f2 61 64 64 68 75 66 66  |(s-9) . .addhuff|
00006e20  28 73 29 0d 2a 26 05 cd  0d 2a 30 27 e7 20 28 a4  |(s).*&...*0'. (.|
00006e30  72 6f 77 28 73 29 2b 32  20 3d 20 a4 72 6f 77 28  |row(s)+2 = .row(|
00006e40  73 2b 31 34 29 29 20 80  20 64 32 3d b9 20 8c 0d  |s+14)) . d2=. ..|
00006e50  2a 3a 2e e7 20 73 71 75  61 72 65 28 73 2b 31 34  |*:.. square(s+14|
00006e60  29 3d 30 20 80 20 a4 6f  70 70 28 73 2b 37 29 20  |)=0 . .opp(s+7) |
00006e70  8c 20 f2 61 64 64 68 75  66 66 28 73 29 0d 2a 44  |. .addhuff(s).*D|
00006e80  05 cd 0d 2a 4e 27 e7 20  28 a4 72 6f 77 28 73 29  |...*N'. (.row(s)|
00006e90  2b 32 20 3d 20 a4 72 6f  77 28 73 2b 31 38 29 29  |+2 = .row(s+18))|
00006ea0  20 80 20 64 32 3d b9 20  8c 0d 2a 58 2e e7 20 73  | . d2=. ..*X.. s|
00006eb0  71 75 61 72 65 28 73 2b  31 38 29 3d 30 20 80 20  |quare(s+18)=0 . |
00006ec0  a4 6f 70 70 28 73 2b 39  29 20 8c 20 f2 61 64 64  |.opp(s+9) . .add|
00006ed0  68 75 66 66 28 73 29 0d  2a 62 05 cd 0d 2a 6c 05  |huff(s).*b...*l.|
00006ee0  cd 0d 2a 76 05 ed 0d 2a  80 05 e1 0d 2a 8a 05 20  |..*v...*....*.. |
00006ef0  0d 2a 94 10 dd f2 61 64  64 68 75 66 66 28 73 29  |.*....addhuff(s)|
00006f00  0d 2a 9e 0d 61 6c 72 65  61 64 79 3d a3 0d 2a a8  |.*..already=..*.|
00006f10  14 e3 20 68 3d 30 20 b8  20 6e 70 68 75 66 66 2d  |.. h=0 . nphuff-|
00006f20  31 0d 2a b2 1c e7 20 6e  68 75 66 66 28 68 29 3d  |1.*... nhuff(h)=|
00006f30  73 20 8c 20 61 6c 72 65  61 64 79 3d b9 0d 2a bc  |s . already=..*.|
00006f40  05 ed 0d 2a c6 11 e7 20  61 6c 72 65 61 64 79 20  |...*... already |
00006f50  8c 20 e1 0d 2a d0 13 6e  68 75 66 66 28 6e 70 68  |. ..*..nhuff(nph|
00006f60  75 66 66 29 3d 73 0d 2a  da 0d 6e 70 68 75 66 66  |uff)=s.*..nphuff|
00006f70  2b 3d 31 0d 2a e4 05 e1  0d 2a ee 05 20 0d 2a f8  |+=1.*....*.. .*.|
00006f80  0a dd f2 68 75 66 66 0d  2b 02 0c 69 6e 68 75 66  |...huff.+..inhuf|
00006f90  66 3d b9 0d 2b 0c 0e 73  65 74 70 68 75 66 66 3d  |f=..+..setphuff=|
00006fa0  a3 0d 2b 16 1c 21 62 6c  6f 63 6b 25 3d 67 72 61  |..+..!block%=gra|
00006fb0  70 68 69 63 73 5f 68 61  6e 64 6c 65 25 0d 2b 20  |phics_handle%.+ |
00006fc0  0a f2 63 6c 6f 73 65 0d  2b 2a 1b c8 99 22 57 69  |..close.+*..."Wi|
00006fd0  6d 70 5f 43 72 65 61 74  65 4d 65 6e 75 22 2c 2c  |mp_CreateMenu",,|
00006fe0  2d 31 0d 2b 34 0a 64 6f  6e 65 3d a3 0d 2b 3e 26  |-1.+4.done=..+>&|
00006ff0  e7 20 47 6f 3d 31 20 8c  20 48 47 6f 24 3d 50 6c  |. Go=1 . HGo$=Pl|
00007000  79 72 32 24 20 8b 20 48  47 6f 24 3d 50 6c 79 72  |yr2$ . HGo$=Plyr|
00007010  31 24 0d 2b 48 39 f2 61  6c 74 65 72 49 63 6f 6e  |1$.+H9.alterIcon|
00007020  28 6d 61 69 6e 5f 68 61  6e 64 6c 65 25 2c 47 6f  |(main_handle%,Go|
00007030  74 65 78 74 69 63 6f 6e  2c 22 21 48 75 66 66 20  |texticon,"!Huff |
00007040  22 2b 48 47 6f 24 2c 30  2c 31 29 0d 2b 52 11 e3  |"+HGo$,0,1).+R..|
00007050  20 68 3d 30 b8 70 68 75  66 66 2d 31 0d 2b 5c 22  | h=0.phuff-1.+\"|
00007060  f2 73 65 74 70 69 65 63  65 66 6c 61 67 73 28 68  |.setpieceflags(h|
00007070  75 66 66 28 68 29 2c 79  65 6c 6c 6f 77 29 0d 2b  |uff(h),yellow).+|
00007080  66 05 ed 0d 2b 70 36 e7  20 46 69 72 73 74 3c 3e  |f...+p6. First<>|
00007090  2d 31 20 8c 20 f2 73 65  74 70 69 65 63 65 66 6c  |-1 . .setpiecefl|
000070a0  61 67 73 28 46 69 72 73  74 2c 62 6c 61 63 6b 29  |ags(First,black)|
000070b0  3a 46 69 72 73 74 3d 2d  31 0d 2b 7a 0d f2 63 6c  |:First=-1.+z..cl|
000070c0  65 61 72 69 6e 74 0d 2b  84 05 f5 0d 2b 8e 28 c8  |earint.+....+.(.|
000070d0  99 22 57 69 6d 70 5f 50  6f 6c 6c 22 2c 6d 61 73  |."Wimp_Poll",mas|
000070e0  6b 25 2c 62 6c 6f 63 6b  25 20 b8 20 72 65 61 73  |k%,block% . reas|
000070f0  6f 6e 25 0d 2b 98 10 c8  8e 20 72 65 61 73 6f 6e  |on%.+.... reason|
00007100  25 20 ca 0d 2b a2 23 c9  20 32 3a c8 99 22 57 69  |% ..+.#. 2:.."Wi|
00007110  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
00007120  62 6c 6f 63 6b 25 0d 2b  ac 24 c9 20 33 3a c8 99  |block%.+.$. 3:..|
00007130  22 57 69 6d 70 5f 43 6c  6f 73 65 57 69 6e 64 6f  |"Wimp_CloseWindo|
00007140  77 22 2c 2c 62 6c 6f 63  6b 25 0d 2b b6 30 c9 20  |w",,block%.+.0. |
00007150  36 3a f2 68 75 66 66 63  6c 69 63 6b 28 62 6c 6f  |6:.huffclick(blo|
00007160  63 6b 25 21 38 2c 62 6c  6f 63 6b 25 21 31 32 2c  |ck%!8,block%!12,|
00007170  62 6c 6f 63 6b 25 21 31  36 29 0d 2b c0 11 c9 20  |block%!16).+... |
00007180  39 3a f2 68 75 66 66 6d  65 6e 75 0d 2b ca 18 c9  |9:.huffmenu.+...|
00007190  20 31 37 2c 31 38 3a f2  68 75 66 66 6d 65 73 73  | 17,18:.huffmess|
000071a0  61 67 65 0d 2b d4 05 cb  0d 2b de 14 e7 20 66 69  |age.+....+... fi|
000071b0  6e 69 73 68 65 64 25 20  f2 65 6e 64 0d 2b e8 0a  |nished% .end.+..|
000071c0  fd 20 64 6f 6e 65 0d 2b  f2 13 e3 20 68 3d 30 20  |. done.+... h=0 |
000071d0  b8 20 70 68 75 66 66 2d  31 0d 2b fc 21 f2 73 65  |. phuff-1.+.!.se|
000071e0  74 70 69 65 63 65 66 6c  61 67 73 28 68 75 66 66  |tpieceflags(huff|
000071f0  28 68 29 2c 62 6c 61 63  6b 29 0d 2c 06 05 ed 0d  |(h),black).,....|
00007200  2c 10 18 e7 20 73 65 74  70 68 75 66 66 20 8c 20  |,... setphuff . |
00007210  70 68 75 66 66 3d a3 0d  2c 1a 0e f2 73 65 74 67  |phuff=..,...setg|
00007220  6f 74 65 78 74 0d 2c 24  0d f2 63 6f 75 6e 74 6d  |otext.,$..countm|
00007230  65 6e 0d 2c 2e 10 f2 63  68 65 63 6b 69 66 68 75  |en.,...checkifhu|
00007240  66 66 0d 2c 38 0c 69 6e  68 75 66 66 3d a3 0d 2c  |ff.,8.inhuff=..,|
00007250  42 05 e1 0d 2c 4c 05 20  0d 2c 56 26 dd f2 68 75  |B...,L. .,V&..hu|
00007260  66 66 63 6c 69 63 6b 28  62 75 74 74 6f 6e 25 2c  |ffclick(button%,|
00007270  77 69 6e 64 6f 77 25 2c  69 63 6f 6e 25 29 0d 2c  |window%,icon%).,|
00007280  60 11 e7 20 62 75 74 74  6f 6e 25 3d 32 20 8c 0d  |`.. button%=2 ..|
00007290  2c 6a 3c e7 20 77 69 6e  64 6f 77 25 3d 2d 32 20  |,j<. window%=-2 |
000072a0  8c 20 c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |. .."Wimp_Create|
000072b0  4d 65 6e 75 22 2c 2c 62  61 72 6d 2c 62 6c 6f 63  |Menu",,barm,bloc|
000072c0  6b 25 21 30 2d 36 34 2c  32 32 38 0d 2c 74 50 e7  |k%!0-64,228.,tP.|
000072d0  20 77 69 6e 64 6f 77 25  3d 6d 61 69 6e 5f 68 61  | window%=main_ha|
000072e0  6e 64 6c 65 25 20 8c 20  c8 99 22 57 69 6d 70 5f  |ndle% . .."Wimp_|
000072f0  43 72 65 61 74 65 4d 65  6e 75 22 2c 2c 63 61 6e  |CreateMenu",,can|
00007300  63 68 6d 2c 62 6c 6f 63  6b 25 21 30 2d 36 34 2c  |chm,block%!0-64,|
00007310  62 6c 6f 63 6b 25 21 34  2d 31 36 0d 2c 7e 12 6d  |block%!4-16.,~.m|
00007320  65 6e 63 72 25 3d 77 69  6e 64 6f 77 25 0d 2c 88  |encr%=window%.,.|
00007330  05 cd 0d 2c 92 16 e7 20  62 75 74 74 6f 6e 25 20  |...,... button% |
00007340  3c 3e 20 34 20 8c 20 e1  0d 2c 9c 2c e7 20 77 69  |<> 4 . ..,.,. wi|
00007350  6e 64 6f 77 25 3d 2d 32  20 8c 20 f2 6f 70 65 6e  |ndow%=-2 . .open|
00007360  77 69 6e 64 6f 77 28 6d  61 69 6e 5f 68 61 6e 64  |window(main_hand|
00007370  6c 65 25 29 0d 2c a6 1c  e7 20 77 69 6e 64 6f 77  |le%).,... window|
00007380  25 3d 6d 61 69 6e 5f 68  61 6e 64 6c 65 25 20 8c  |%=main_handle% .|
00007390  0d 2c b0 08 6f 6b 3d a3  0d 2c ba 23 e7 20 64 69  |.,..ok=..,.#. di|
000073a0  6d 65 6e 73 69 6f 6e 3d  32 20 80 20 69 63 6f 6e  |mension=2 . icon|
000073b0  25 3c 36 34 20 8c 20 6f  6b 3d b9 0d 2c c4 24 e7  |%<64 . ok=..,.$.|
000073c0  20 64 69 6d 65 6e 73 69  6f 6e 3d 33 20 80 20 69  | dimension=3 . i|
000073d0  63 6f 6e 25 3c 31 32 39  20 8c 20 6f 6b 3d b9 0d  |con%<129 . ok=..|
000073e0  2c ce 0a e7 20 6f 6b 20  8c 0d 2c d8 21 e7 20 64  |,... ok ..,.!. d|
000073f0  69 6d 65 6e 73 69 6f 6e  3d 33 20 8c 20 f2 66 69  |imension=3 . .fi|
00007400  6e 64 6f 75 74 77 68 69  63 68 0d 2c e2 1a e7 20  |ndoutwhich.,... |
00007410  69 63 6f 6e 25 3c 36 34  20 80 20 69 63 6f 6e 25  |icon%<64 . icon%|
00007420  3e 30 20 8c 0d 2c ec 0c  66 6f 75 6e 64 3d 2d 31  |>0 ..,..found=-1|
00007430  0d 2c f6 13 e3 20 68 3d  30 20 b8 20 70 68 75 66  |.,... h=0 . phuf|
00007440  66 2d 31 0d 2d 00 23 e7  20 69 63 6f 6e 25 3d 68  |f-1.-.#. icon%=h|
00007450  75 66 66 28 68 29 20 8c  20 66 6f 75 6e 64 3d 68  |uff(h) . found=h|
00007460  75 66 66 28 68 29 0d 2d  0a 05 ed 0d 2d 14 11 e7  |uff(h).-....-...|
00007470  20 66 6f 75 6e 64 3c 3e  2d 31 20 8c 0d 2d 1e 19  | found<>-1 ..-..|
00007480  f2 6c 69 67 68 74 6e 69  6e 67 62 6f 6c 74 28 66  |.lightningbolt(f|
00007490  6f 75 6e 64 29 0d 2d 28  13 73 71 75 61 72 65 28  |ound).-(.square(|
000074a0  66 6f 75 6e 64 29 3d 30  0d 2d 32 0a 64 6f 6e 65  |found)=0.-2.done|
000074b0  3d b9 0d 2d 3c 0e 73 65  74 70 68 75 66 66 3d b9  |=..-<.setphuff=.|
000074c0  0d 2d 46 05 cd 0d 2d 50  05 cd 0d 2d 5a 05 cd 0d  |.-F...-P...-Z...|
000074d0  2d 64 05 cd 0d 2d 6e 05  e1 0d 2d 78 05 20 0d 2d  |-d...-n...-x. .-|
000074e0  82 0e dd f2 68 75 66 66  6d 65 6e 75 0d 2d 8c 24  |....huffmenu.-.$|
000074f0  e7 20 6d 65 6e 63 72 25  3d 6d 61 69 6e 5f 68 61  |. mencr%=main_ha|
00007500  6e 64 6c 65 25 20 8c 20  64 6f 6e 65 3d b9 3a e1  |ndle% . done=.:.|
00007510  0d 2d 96 2a e7 20 6d 65  6e 63 72 25 3d 2d 32 20  |.-.*. mencr%=-2 |
00007520  80 20 62 6c 6f 63 6b 25  21 30 3d 32 20 8c 20 66  |. block%!0=2 . f|
00007530  69 6e 69 73 68 65 64 25  3d b9 0d 2d a0 23 c8 99  |inished%=..-.#..|
00007540  22 57 69 6d 70 5f 47 65  74 50 6f 69 6e 74 65 72  |"Wimp_GetPointer|
00007550  49 6e 66 6f 22 2c 2c 62  6c 6f 63 6b 25 0d 2d aa  |Info",,block%.-.|
00007560  3c e7 20 62 6c 6f 63 6b  25 21 38 3d 31 20 8c 20  |<. block%!8=1 . |
00007570  c8 99 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |.."Wimp_CreateMe|
00007580  6e 75 22 2c 2c 62 61 72  6d 2c 62 6c 6f 63 6b 25  |nu",,barm,block%|
00007590  21 30 2d 36 34 2c 32 32  38 0d 2d b4 05 e1 0d 2d  |!0-64,228.-....-|
000075a0  be 05 20 0d 2d c8 11 dd  f2 68 75 66 66 6d 65 73  |.. .-....huffmes|
000075b0  73 61 67 65 0d 2d d2 12  c8 8e 20 62 6c 6f 63 6b  |sage.-.... block|
000075c0  25 21 31 36 20 ca 0d 2d  dc 13 c9 20 30 3a 66 69  |%!16 ..-... 0:fi|
000075d0  6e 69 73 68 65 64 25 3d  b9 0d 2d e6 1f c9 20 32  |nished%=..-... 2|
000075e0  3a f2 73 61 76 65 28 a4  74 69 64 79 28 62 6c 6f  |:.save(.tidy(blo|
000075f0  63 6b 25 2b 34 34 29 29  0d 2d f0 47 c9 20 33 3a  |ck%+44)).-.G. 3:|
00007600  e7 20 62 6c 6f 63 6b 25  21 31 32 3d 30 20 80 20  |. block%!12=0 . |
00007610  62 6c 6f 63 6b 25 21 34  30 3d 26 35 36 30 20 8c  |block%!40=&560 .|
00007620  20 f2 6c 6f 61 64 28 a4  74 69 64 79 28 62 6c 6f  | .load(.tidy(blo|
00007630  63 6b 25 2b 34 34 29 29  3a 64 6f 6e 65 3d b9 0d  |ck%+44)):done=..|
00007640  2d fa 10 c9 20 26 35 30  32 3a f2 68 65 6c 70 0d  |-... &502:.help.|
00007650  2e 04 0d c9 20 26 34 30  30 43 30 3a 0d 2e 0e 43  |.... &400C0:...C|
00007660  e7 20 28 6d 65 6e 63 72  25 3d 6d 61 69 6e 5f 68  |. (mencr%=main_h|
00007670  61 6e 64 6c 65 25 20 80  20 62 6c 6f 63 6b 25 21  |andle% . block%!|
00007680  33 32 3d 30 20 80 20 62  6c 6f 63 6b 25 21 33 36  |32=0 . block%!36|
00007690  3d 31 29 20 8c 20 f2 6f  70 65 6e 73 61 76 65 0d  |=1) . .opensave.|
000076a0  2e 18 2b e7 20 28 6d 65  6e 63 72 25 3d 2d 32 20  |..+. (mencr%=-2 |
000076b0  80 20 62 6c 6f 63 6b 25  21 33 32 3d 31 29 20 8c  |. block%!32=1) .|
000076c0  20 f2 6f 70 65 6e 73 61  76 65 0d 2e 22 38 e7 20  | .opensave.."8. |
000076d0  28 6d 65 6e 63 72 25 3d  6d 61 69 6e 5f 68 61 6e  |(mencr%=main_han|
000076e0  64 6c 65 25 20 80 20 62  6c 6f 63 6b 25 21 33 32  |dle% . block%!32|
000076f0  3d 32 29 20 8c 20 f2 6f  70 65 6e 70 6c 61 79 65  |=2) . .openplaye|
00007700  72 73 0d 2e 2c 05 cb 0d  2e 36 05 e1 0d 2e 40 05  |rs..,....6....@.|
00007710  20 0d 2e 4a 1b dd f2 6c  69 67 68 74 6e 69 6e 67  | ..J...lightning|
00007720  62 6f 6c 74 28 6c 69 63  6f 6e 25 29 0d 2e 54 1e  |bolt(licon%)..T.|
00007730  e7 20 64 69 6d 65 6e 73  69 6f 6e 3d 33 20 8c 20  |. dimension=3 . |
00007740  6c 69 63 6f 6e 25 2b 3d  36 35 0d 2e 5e 18 21 62  |licon%+=65..^.!b|
00007750  6c 6f 63 6b 25 3d 6d 61  69 6e 5f 68 61 6e 64 6c  |lock%=main_handl|
00007760  65 25 0d 2e 68 13 62 6c  6f 63 6b 25 21 34 3d 6c  |e%..h.block%!4=l|
00007770  69 63 6f 6e 25 0d 2e 72  21 c8 99 22 57 69 6d 70  |icon%..r!.."Wimp|
00007780  5f 47 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_GetIconState",,|
00007790  62 6c 6f 63 6b 25 0d 2e  7c 29 65 78 70 3d 62 6c  |block%..|)exp=bl|
000077a0  6f 63 6b 25 21 38 2b 28  28 62 6c 6f 63 6b 25 21  |ock%!8+((block%!|
000077b0  31 36 2d 62 6c 6f 63 6b  25 21 38 29 2f 32 29 0d  |16-block%!8)/2).|
000077c0  2e 86 11 77 79 70 3d 62  6c 6f 63 6b 25 21 31 32  |...wyp=block%!12|
000077d0  0d 2e 90 18 21 62 6c 6f  63 6b 25 3d 6d 61 69 6e  |....!block%=main|
000077e0  5f 68 61 6e 64 6c 65 25  0d 2e 9a 13 62 6c 6f 63  |_handle%....bloc|
000077f0  6b 25 21 34 3d 65 78 70  2d 33 36 0d 2e a4 14 62  |k%!4=exp-36....b|
00007800  6c 6f 63 6b 25 21 38 3d  77 79 70 2b 32 32 30 0d  |lock%!8=wyp+220.|
00007810  2e ae 1a 62 6c 6f 63 6b  25 21 31 32 3d 62 6c 6f  |...block%!12=blo|
00007820  63 6b 25 21 34 2b 31 30  34 0d 2e b8 19 62 6c 6f  |ck%!4+104....blo|
00007830  63 6b 25 21 31 36 3d 62  6c 6f 63 6b 25 21 38 2b  |ck%!16=block%!8+|
00007840  36 34 0d 2e c2 18 62 6c  6f 63 6b 25 21 32 30 3d  |64....block%!20=|
00007850  2d 39 35 36 32 37 36 37  31 30 0d 2e cc 18 24 28  |-956276710....$(|
00007860  62 6c 6f 63 6b 25 2b 32  34 29 3d 22 63 6c 6f 75  |block%+24)="clou|
00007870  64 22 0d 2e d6 26 c8 99  22 57 69 6d 70 5f 43 72  |d"...&.."Wimp_Cr|
00007880  65 61 74 65 49 63 6f 6e  22 2c 2c 62 6c 6f 63 6b  |eateIcon",,block|
00007890  25 20 b8 20 63 6c 64 68  0d 2e e0 28 f2 61 6c 74  |% . cldh...(.alt|
000078a0  65 72 49 63 6f 6e 28 6d  61 69 6e 5f 68 61 6e 64  |erIcon(main_hand|
000078b0  6c 65 25 2c 63 6c 64 68  2c 22 22 2c 30 2c 31 29  |le%,cldh,"",0,1)|
000078c0  0d 2e ea 1a f2 70 6f 6c  6c 3a e7 20 66 69 6e 69  |.....poll:. fini|
000078d0  73 68 65 64 25 20 f2 65  6e 64 0d 2e f4 18 21 62  |shed% .end....!b|
000078e0  6c 6f 63 6b 25 3d 6d 61  69 6e 5f 68 61 6e 64 6c  |lock%=main_handl|
000078f0  65 25 0d 2e fe 13 62 6c  6f 63 6b 25 21 34 3d 65  |e%....block%!4=e|
00007900  78 70 2d 32 30 0d 2f 08  13 62 6c 6f 63 6b 25 21  |xp-20./..block%!|
00007910  38 3d 77 79 70 2b 32 34  0d 2f 12 19 62 6c 6f 63  |8=wyp+24./..bloc|
00007920  6b 25 21 31 32 3d 62 6c  6f 63 6b 25 21 34 2b 33  |k%!12=block%!4+3|
00007930  32 0d 2f 1c 1a 62 6c 6f  63 6b 25 21 31 36 3d 62  |2./..block%!16=b|
00007940  6c 6f 63 6b 25 21 38 2b  32 30 30 0d 2f 26 18 62  |lock%!8+200./&.b|
00007950  6c 6f 63 6b 25 21 32 30  3d 2d 39 35 36 32 37 36  |lock%!20=-956276|
00007960  37 31 30 0d 2f 30 1c 24  28 62 6c 6f 63 6b 25 2b  |710./0.$(block%+|
00007970  32 34 29 3d 22 6c 69 67  68 74 6e 69 6e 67 22 0d  |24)="lightning".|
00007980  2f 3a 26 c8 99 22 57 69  6d 70 5f 43 72 65 61 74  |/:&.."Wimp_Creat|
00007990  65 49 63 6f 6e 22 2c 2c  62 6c 6f 63 6b 25 20 b8  |eIcon",,block% .|
000079a0  20 6c 67 74 68 0d 2f 44  28 f2 61 6c 74 65 72 49  | lgth./D(.alterI|
000079b0  63 6f 6e 28 6d 61 69 6e  5f 68 61 6e 64 6c 65 25  |con(main_handle%|
000079c0  2c 6c 67 74 68 2c 22 22  2c 30 2c 31 29 0d 2f 4e  |,lgth,"",0,1)./N|
000079d0  1a f2 70 6f 6c 6c 3a e7  20 66 69 6e 69 73 68 65  |..poll:. finishe|
000079e0  64 25 20 f2 65 6e 64 0d  2f 58 16 74 69 6d 65 3d  |d% .end./X.time=|
000079f0  91 3a f5 fd 91 3e 74 69  6d 65 2b 31 30 0d 2f 62  |.:...>time+10./b|
00007a00  16 f2 73 65 74 70 69 65  63 65 28 66 6f 75 6e 64  |..setpiece(found|
00007a10  2c 30 29 0d 2f 6c 1a f2  70 6f 6c 6c 3a e7 20 66  |,0)./l..poll:. f|
00007a20  69 6e 69 73 68 65 64 25  20 f2 65 6e 64 0d 2f 76  |inished% .end./v|
00007a30  16 74 69 6d 65 3d 91 3a  f5 fd 91 3e 74 69 6d 65  |.time=.:...>time|
00007a40  2b 32 30 0d 2f 80 29 f2  61 6c 74 65 72 49 63 6f  |+20./.).alterIco|
00007a50  6e 28 6d 61 69 6e 5f 68  61 6e 64 6c 65 25 2c 6c  |n(main_handle%,l|
00007a60  67 74 68 2c 22 23 22 2c  30 2c 31 29 0d 2f 8a 18  |gth,"#",0,1)./..|
00007a70  21 62 6c 6f 63 6b 25 3d  6d 61 69 6e 5f 68 61 6e  |!block%=main_han|
00007a80  64 6c 65 25 0d 2f 94 11  62 6c 6f 63 6b 25 21 34  |dle%./..block%!4|
00007a90  3d 6c 67 74 68 0d 2f 9e  1f c8 99 22 57 69 6d 70  |=lgth./...."Wimp|
00007aa0  5f 44 65 6c 65 74 65 49  63 6f 6e 22 2c 2c 62 6c  |_DeleteIcon",,bl|
00007ab0  6f 63 6b 25 0d 2f a8 1a  f2 70 6f 6c 6c 3a e7 20  |ock%./...poll:. |
00007ac0  66 69 6e 69 73 68 65 64  25 20 f2 65 6e 64 0d 2f  |finished% .end./|
00007ad0  b2 16 74 69 6d 65 3d 91  3a f5 fd 91 3e 74 69 6d  |..time=.:...>tim|
00007ae0  65 2b 31 30 0d 2f bc 29  f2 61 6c 74 65 72 49 63  |e+10./.).alterIc|
00007af0  6f 6e 28 6d 61 69 6e 5f  68 61 6e 64 6c 65 25 2c  |on(main_handle%,|
00007b00  63 6c 64 68 2c 22 23 22  2c 30 2c 31 29 0d 2f c6  |cldh,"#",0,1)./.|
00007b10  18 21 62 6c 6f 63 6b 25  3d 6d 61 69 6e 5f 68 61  |.!block%=main_ha|
00007b20  6e 64 6c 65 25 0d 2f d0  11 62 6c 6f 63 6b 25 21  |ndle%./..block%!|
00007b30  34 3d 63 6c 64 68 0d 2f  da 1f c8 99 22 57 69 6d  |4=cldh./...."Wim|
00007b40  70 5f 44 65 6c 65 74 65  49 63 6f 6e 22 2c 2c 62  |p_DeleteIcon",,b|
00007b50  6c 6f 63 6b 25 0d 2f e4  1a f2 70 6f 6c 6c 3a e7  |lock%./...poll:.|
00007b60  20 66 69 6e 69 73 68 65  64 25 20 f2 65 6e 64 0d  | finished% .end.|
00007b70  2f ee 05 e1 0d 2f f8 05  20 0d 30 02 0b dd f2 66  |/..../.. .0....f|
00007b80  6f 72 63 65 0d 30 0c 0c  66 70 6f 73 3d 70 6f 73  |orce.0..fpos=pos|
00007b90  0d 30 16 0d 69 6e 66 6f  72 63 65 3d b9 0d 30 20  |.0..inforce=..0 |
00007ba0  1c 21 62 6c 6f 63 6b 25  3d 67 72 61 70 68 69 63  |.!block%=graphic|
00007bb0  73 5f 68 61 6e 64 6c 65  25 0d 30 2a 0a f2 63 6c  |s_handle%.0*..cl|
00007bc0  6f 73 65 0d 30 34 1b c8  99 22 57 69 6d 70 5f 43  |ose.04..."Wimp_C|
00007bd0  72 65 61 74 65 4d 65 6e  75 22 2c 2c 2d 31 0d 30  |reateMenu",,-1.0|
00007be0  3e 0b 66 64 6f 6e 65 3d  a3 0d 30 48 26 e7 20 47  |>.fdone=..0H&. G|
00007bf0  6f 3d 31 20 8c 20 46 47  6f 24 3d 50 6c 79 72 32  |o=1 . FGo$=Plyr2|
00007c00  24 20 8b 20 46 47 6f 24  3d 50 6c 79 72 31 24 0d  |$ . FGo$=Plyr1$.|
00007c10  30 52 36 e7 20 46 69 72  73 74 3c 3e 2d 31 20 8c  |0R6. First<>-1 .|
00007c20  20 f2 73 65 74 70 69 65  63 65 66 6c 61 67 73 28  | .setpieceflags(|
00007c30  46 69 72 73 74 2c 62 6c  61 63 6b 29 3a 46 69 72  |First,black):Fir|
00007c40  73 74 3d 2d 31 0d 30 5c  0d f2 63 6c 65 61 72 69  |st=-1.0\..cleari|
00007c50  6e 74 0d 30 66 14 c8 99  22 48 6f 75 72 67 6c 61  |nt.0f..."Hourgla|
00007c60  73 73 5f 4f 6e 22 0d 30  70 13 f2 72 65 73 74 6f  |ss_On".0p..resto|
00007c70  72 65 28 70 6f 73 2d 32  29 0d 30 7a 15 c8 99 22  |re(pos-2).0z..."|
00007c80  48 6f 75 72 67 6c 61 73  73 5f 4f 66 66 22 0d 30  |Hourglass_Off".0|
00007c90  84 3a f2 61 6c 74 65 72  49 63 6f 6e 28 6d 61 69  |.:.alterIcon(mai|
00007ca0  6e 5f 68 61 6e 64 6c 65  25 2c 47 6f 74 65 78 74  |n_handle%,Gotext|
00007cb0  69 63 6f 6e 2c 22 21 46  6f 72 63 65 20 22 2b 46  |icon,"!Force "+F|
00007cc0  47 6f 24 2c 30 2c 31 29  0d 30 8e 05 f5 0d 30 98  |Go$,0,1).0....0.|
00007cd0  28 c8 99 22 57 69 6d 70  5f 50 6f 6c 6c 22 2c 6d  |(.."Wimp_Poll",m|
00007ce0  61 73 6b 25 2c 62 6c 6f  63 6b 25 20 b8 20 72 65  |ask%,block% . re|
00007cf0  61 73 6f 6e 25 0d 30 a2  10 c8 8e 20 72 65 61 73  |ason%.0.... reas|
00007d00  6f 6e 25 20 ca 0d 30 ac  23 c9 20 32 3a c8 99 22  |on% ..0.#. 2:.."|
00007d10  57 69 6d 70 5f 4f 70 65  6e 57 69 6e 64 6f 77 22  |Wimp_OpenWindow"|
00007d20  2c 2c 62 6c 6f 63 6b 25  0d 30 b6 24 c9 20 33 3a  |,,block%.0.$. 3:|
00007d30  c8 99 22 57 69 6d 70 5f  43 6c 6f 73 65 57 69 6e  |.."Wimp_CloseWin|
00007d40  64 6f 77 22 2c 2c 62 6c  6f 63 6b 25 0d 30 c0 31  |dow",,block%.0.1|
00007d50  c9 20 36 3a f2 66 6f 72  63 65 63 6c 69 63 6b 28  |. 6:.forceclick(|
00007d60  62 6c 6f 63 6b 25 21 38  2c 62 6c 6f 63 6b 25 21  |block%!8,block%!|
00007d70  31 32 2c 62 6c 6f 63 6b  25 21 31 36 29 0d 30 ca  |12,block%!16).0.|
00007d80  12 c9 20 39 3a f2 66 6f  72 63 65 6d 65 6e 75 0d  |.. 9:.forcemenu.|
00007d90  30 d4 18 c9 20 31 37 2c  31 38 3a f2 68 75 66 66  |0... 17,18:.huff|
00007da0  6d 65 73 73 61 67 65 0d  30 de 05 cb 0d 30 e8 14  |message.0....0..|
00007db0  e7 20 66 69 6e 69 73 68  65 64 25 20 f2 65 6e 64  |. finished% .end|
00007dc0  0d 30 f2 0b fd 20 66 64  6f 6e 65 0d 30 fc 0d 69  |.0... fdone.0..i|
00007dd0  6e 66 6f 72 63 65 3d a3  0d 31 06 05 e1 0d 31 10  |nforce=..1....1.|
00007de0  04 0d 31 1a 27 dd f2 66  6f 72 63 65 63 6c 69 63  |..1.'..forceclic|
00007df0  6b 28 62 75 74 74 6f 6e  25 2c 77 69 6e 64 6f 77  |k(button%,window|
00007e00  25 2c 69 63 6f 6e 25 29  0d 31 24 11 e7 20 62 75  |%,icon%).1$.. bu|
00007e10  74 74 6f 6e 25 3d 32 20  8c 0d 31 2e 3c e7 20 77  |tton%=2 ..1.<. w|
00007e20  69 6e 64 6f 77 25 3d 2d  32 20 8c 20 c8 99 22 57  |indow%=-2 . .."W|
00007e30  69 6d 70 5f 43 72 65 61  74 65 4d 65 6e 75 22 2c  |imp_CreateMenu",|
00007e40  2c 62 61 72 6d 2c 62 6c  6f 63 6b 25 21 30 2d 36  |,barm,block%!0-6|
00007e50  34 2c 32 32 38 0d 31 38  50 e7 20 77 69 6e 64 6f  |4,228.18P. windo|
00007e60  77 25 3d 6d 61 69 6e 5f  68 61 6e 64 6c 65 25 20  |w%=main_handle% |
00007e70  8c 20 c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |. .."Wimp_Create|
00007e80  4d 65 6e 75 22 2c 2c 63  61 6e 63 66 6d 2c 62 6c  |Menu",,cancfm,bl|
00007e90  6f 63 6b 25 21 30 2d 36  34 2c 62 6c 6f 63 6b 25  |ock%!0-64,block%|
00007ea0  21 34 2d 31 36 0d 31 42  12 6d 65 6e 63 72 25 3d  |!4-16.1B.mencr%=|
00007eb0  77 69 6e 64 6f 77 25 0d  31 4c 05 cd 0d 31 56 13  |window%.1L...1V.|
00007ec0  e7 20 62 75 74 74 6f 6e  25 3d 32 20 8c 20 e1 0d  |. button%=2 . ..|
00007ed0  31 60 38 e7 20 77 69 6e  64 6f 77 25 3d 2d 32 20  |1`8. window%=-2 |
00007ee0  80 20 62 75 74 74 6f 6e  25 3d 34 20 8c 20 f2 6f  |. button%=4 . .o|
00007ef0  70 65 6e 77 69 6e 64 6f  77 28 6d 61 69 6e 5f 68  |penwindow(main_h|
00007f00  61 6e 64 6c 65 25 29 0d  31 6a 1c e7 20 77 69 6e  |andle%).1j.. win|
00007f10  64 6f 77 25 3d 6d 61 69  6e 5f 68 61 6e 64 6c 65  |dow%=main_handle|
00007f20  25 20 8c 0d 31 74 08 6f  6b 3d a3 0d 31 7e 23 e7  |% ..1t.ok=..1~#.|
00007f30  20 64 69 6d 65 6e 73 69  6f 6e 3d 32 20 80 20 69  | dimension=2 . i|
00007f40  63 6f 6e 25 3c 36 34 20  8c 20 6f 6b 3d b9 0d 31  |con%<64 . ok=..1|
00007f50  88 24 e7 20 64 69 6d 65  6e 73 69 6f 6e 3d 33 20  |.$. dimension=3 |
00007f60  80 20 69 63 6f 6e 25 3c  31 32 39 20 8c 20 6f 6b  |. icon%<129 . ok|
00007f70  3d b9 0d 31 92 0a e7 20  6f 6b 20 8c 0d 31 9c 21  |=..1... ok ..1.!|
00007f80  e7 20 64 69 6d 65 6e 73  69 6f 6e 3d 33 20 8c 20  |. dimension=3 . |
00007f90  f2 66 69 6e 64 6f 75 74  77 68 69 63 68 0d 31 a6  |.findoutwhich.1.|
00007fa0  2e e7 20 69 63 6f 6e 25  3c 36 34 20 80 20 69 63  |.. icon%<64 . ic|
00007fb0  6f 6e 25 3e 2d 31 20 8c  20 f2 62 6f 61 72 64 63  |on%>-1 . .boardc|
00007fc0  6c 69 63 6b 28 69 63 6f  6e 25 29 0d 31 b0 05 cd  |lick(icon%).1...|
00007fd0  0d 31 ba 05 cd 0d 31 c4  05 e1 0d 31 ce 04 0d 31  |.1....1....1...1|
00007fe0  d8 0f dd f2 66 6f 72 63  65 6d 65 6e 75 0d 31 e2  |....forcemenu.1.|
00007ff0  1b e7 20 6d 65 6e 63 72  25 3d 6d 61 69 6e 5f 68  |.. mencr%=main_h|
00008000  61 6e 64 6c 65 25 20 8c  0d 31 ec 0b 66 64 6f 6e  |andle% ..1..fdon|
00008010  65 3d b9 0d 31 f6 14 c8  99 22 48 6f 75 72 67 6c  |e=..1...."Hourgl|
00008020  61 73 73 5f 4f 6e 22 0d  32 00 14 f2 72 65 73 74  |ass_On".2...rest|
00008030  6f 72 65 28 66 70 6f 73  2d 31 29 0d 32 0a 15 c8  |ore(fpos-1).2...|
00008040  99 22 48 6f 75 72 67 6c  61 73 73 5f 4f 66 66 22  |."Hourglass_Off"|
00008050  0d 32 14 05 cd 0d 32 1e  1d e7 20 6d 65 6e 63 72  |.2....2... mencr|
00008060  25 3d 6d 61 69 6e 5f 68  61 6e 64 6c 65 25 20 8c  |%=main_handle% .|
00008070  20 e1 0d 32 28 2a e7 20  6d 65 6e 63 72 25 3d 2d  | ..2(*. mencr%=-|
00008080  32 20 80 20 62 6c 6f 63  6b 25 21 30 3d 32 20 8c  |2 . block%!0=2 .|
00008090  20 66 69 6e 69 73 68 65  64 25 3d b9 0d 32 32 23  | finished%=..22#|
000080a0  c8 99 22 57 69 6d 70 5f  47 65 74 50 6f 69 6e 74  |.."Wimp_GetPoint|
000080b0  65 72 49 6e 66 6f 22 2c  2c 62 6c 6f 63 6b 25 0d  |erInfo",,block%.|
000080c0  32 3c 3c e7 20 62 6c 6f  63 6b 25 21 38 3d 31 20  |2<<. block%!8=1 |
000080d0  8c 20 c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |. .."Wimp_Create|
000080e0  4d 65 6e 75 22 2c 2c 62  61 72 6d 2c 62 6c 6f 63  |Menu",,barm,bloc|
000080f0  6b 25 21 30 2d 36 34 2c  32 32 38 0d 32 46 05 e1  |k%!0-64,228.2F..|
00008100  0d 32 50 04 0d 32 5a 0a  dd f2 68 65 6c 70 0d 32  |.2P..2Z...help.2|
00008110  64 25 77 69 6e 64 6f 77  25 3d 62 6c 6f 63 6b 25  |d%window%=block%|
00008120  21 33 32 3a 69 63 6f 6e  25 3d 62 6c 6f 63 6b 25  |!32:icon%=block%|
00008130  21 33 36 0d 32 6e 25 62  6c 6f 63 6b 25 21 31 32  |!36.2n%block%!12|
00008140  3d 62 6c 6f 63 6b 25 21  38 3a 62 6c 6f 63 6b 25  |=block%!8:block%|
00008150  21 31 36 3d 26 35 30 33  0d 32 78 13 74 65 78 74  |!16=&503.2x.text|
00008160  25 3d 62 6c 6f 63 6b 25  2b 32 30 0d 32 82 30 24  |%=block%+20.2.0$|
00008170  74 65 78 74 25 3d 22 54  68 69 73 20 69 73 20 74  |text%="This is t|
00008180  68 65 20 44 72 61 75 67  68 74 73 20 61 70 70 6c  |he Draughts appl|
00008190  69 63 61 74 69 6f 6e 2e  7c 4d 22 0d 32 8c 10 c8  |ication.|M".2...|
000081a0  8e 20 77 69 6e 64 6f 77  25 20 ca 0d 32 96 93 c9  |. window% ..2...|
000081b0  20 2d 32 3a 24 74 65 78  74 25 3d 22 43 6c 69 63  | -2:$text%="Clic|
000081c0  6b 20 53 65 6c 65 63 74  20 6f 76 65 72 20 74 68  |k Select over th|
000081d0  69 73 20 69 63 6f 6e 20  74 6f 20 6f 70 65 6e 20  |is icon to open |
000081e0  74 68 65 20 6d 61 69 6e  20 70 6c 61 79 69 6e 67  |the main playing|
000081f0  20 77 69 6e 64 6f 77 2e  7c 4d 43 6c 69 63 6b 20  | window.|MClick |
00008200  4d 65 6e 75 20 6f 76 65  72 20 74 68 69 73 20 69  |Menu over this i|
00008210  63 6f 6e 20 74 6f 20 6f  70 65 6e 20 74 68 65 20  |con to open the |
00008220  69 63 6f 6e 20 62 61 72  20 6d 65 6e 75 20 66 6f  |icon bar menu fo|
00008230  72 20 44 72 61 75 67 68  74 73 2e 7c 4d 22 0d 32  |r Draughts.|M".2|
00008240  a0 13 c9 20 6d 61 69 6e  5f 68 61 6e 64 6c 65 25  |... main_handle%|
00008250  3a 0d 32 aa 3c e7 20 28  64 69 6d 65 6e 73 69 6f  |:.2.<. (dimensio|
00008260  6e 3d 33 20 80 20 69 63  6f 6e 25 3c 31 32 39 29  |n=3 . icon%<129)|
00008270  20 84 20 28 64 69 6d 65  6e 73 69 6f 6e 3d 32 20  | . (dimension=2 |
00008280  80 20 69 63 6f 6e 25 3c  36 34 29 20 8c 0d 32 b4  |. icon%<64) ..2.|
00008290  2d 74 65 78 74 24 3d 22  54 68 69 73 20 69 73 20  |-text$="This is |
000082a0  74 68 65 20 6d 61 69 6e  20 70 6c 61 79 69 6e 67  |the main playing|
000082b0  20 62 6f 61 72 64 2e 7c  4d 22 0d 32 be 10 e7 20  | board.|M".2... |
000082c0  69 6e 68 75 66 66 3d a3  20 8c 0d 32 c8 cb e7 20  |inhuff=. ..2... |
000082d0  46 69 72 73 74 3d 2d 31  20 8c 20 74 65 78 74 24  |First=-1 . text$|
000082e0  2b 3d 22 43 6c 69 63 6b  20 53 65 6c 65 63 74 20  |+="Click Select |
000082f0  6f 76 65 72 20 74 68 65  20 70 69 65 63 65 20 77  |over the piece w|
00008300  68 69 63 68 20 79 6f 75  20 77 69 73 68 20 74 6f  |hich you wish to|
00008310  20 6d 6f 76 65 2e 20 20  54 68 65 20 73 71 75 61  | move.  The squa|
00008320  72 65 20 6f 6e 20 77 68  69 63 68 20 69 74 20 72  |re on which it r|
00008330  65 73 74 73 20 77 69 6c  6c 20 62 65 20 68 69 67  |ests will be hig|
00008340  68 6c 69 67 68 74 65 64  20 72 65 64 2e 20 20 49  |hlighted red.  I|
00008350  66 20 79 6f 75 20 63 68  61 6e 67 65 20 79 6f 75  |f you change you|
00008360  72 20 6d 69 6e 64 2c 20  63 6c 69 63 6b 20 53 65  |r mind, click Se|
00008370  6c 65 63 74 20 6f 76 65  72 20 74 68 65 20 70 69  |lect over the pi|
00008380  65 63 65 20 61 20 73 65  63 6f 6e 64 20 74 69 6d  |ece a second tim|
00008390  65 2e 7c 4d 22 0d 32 d2  d4 e7 20 46 69 72 73 74  |e.|M".2... First|
000083a0  3c 3e 2d 31 20 8c 20 74  65 78 74 24 2b 3d 22 43  |<>-1 . text$+="C|
000083b0  6c 69 63 6b 20 53 65 6c  65 63 74 20 6f 76 65 72  |lick Select over|
000083c0  20 74 68 65 20 73 71 75  61 72 65 20 74 6f 20 77  | the square to w|
000083d0  68 69 63 68 20 79 6f 75  20 77 69 73 68 20 79 6f  |hich you wish yo|
000083e0  75 72 20 70 69 65 63 65  20 74 6f 20 6d 6f 76 65  |ur piece to move|
000083f0  2e 20 20 49 66 20 79 6f  75 20 77 69 73 68 20 74  |.  If you wish t|
00008400  6f 20 6d 61 6b 65 20 6d  75 6c 74 69 70 6c 65 20  |o make multiple |
00008410  6a 75 6d 70 73 2c 20 75  73 65 20 41 64 6a 75 73  |jumps, use Adjus|
00008420  74 20 74 6f 20 73 65 6c  65 63 74 20 74 68 65 20  |t to select the |
00008430  69 6e 74 65 72 6d 65 64  69 61 74 65 20 73 71 75  |intermediate squ|
00008440  61 72 65 73 2c 20 77 68  69 63 68 20 77 69 6c 6c  |ares, which will|
00008450  20 62 65 20 68 69 67 68  6c 69 67 68 74 65 64 20  | be highlighted |
00008460  67 72 65 65 6e 2e 7c 4d  22 0d 32 dc 05 cc 0d 32  |green.|M".2....2|
00008470  e6 98 74 65 78 74 24 2b  3d 22 43 6c 69 63 6b 20  |..text$+="Click |
00008480  53 65 6c 65 63 74 20 6f  76 65 72 20 61 6e 79 20  |Select over any |
00008490  6f 6e 65 20 6f 66 20 74  68 65 20 70 69 65 63 65  |one of the piece|
000084a0  73 20 6f 6e 20 61 20 79  65 6c 6c 6f 77 20 73 71  |s on a yellow sq|
000084b0  75 61 72 65 20 2d 20 74  68 61 74 20 70 69 65 63  |uare - that piec|
000084c0  65 20 77 69 6c 6c 20 74  68 65 6e 20 62 65 20 68  |e will then be h|
000084d0  75 66 66 65 64 2e 20 20  54 6f 20 63 61 6e 63 65  |uffed.  To cance|
000084e0  6c 20 74 68 65 20 6f 70  65 72 61 74 69 6f 6e 2c  |l the operation,|
000084f0  20 75 73 65 20 74 68 65  20 6d 61 69 6e 20 6d 65  | use the main me|
00008500  6e 75 2e 7c 4d 22 0d 32  f0 05 cd 0d 32 fa 10 24  |nu.|M".2....2..$|
00008510  74 65 78 74 25 3d 74 65  78 74 24 0d 33 04 05 cd  |text%=text$.3...|
00008520  0d 33 0e 13 c9 20 70 61  6e 65 5f 68 61 6e 64 6c  |.3... pane_handl|
00008530  65 25 3a 0d 33 18 4b 24  74 65 78 74 25 3d 22 43  |e%:.3.K$text%="C|
00008540  6c 69 63 6b 20 6f 6e 20  74 68 65 20 67 72 61 70  |lick on the grap|
00008550  68 69 63 73 20 66 69 6c  65 20 79 6f 75 20 77 69  |hics file you wi|
00008560  73 68 20 74 6f 20 6c 6f  61 64 2c 20 74 68 65 6e  |sh to load, then|
00008570  20 73 65 6c 65 63 74 20  4f 4b 2e 7c 4d 22 0d 33  | select OK.|M".3|
00008580  22 16 c9 20 67 72 61 70  68 69 63 73 5f 68 61 6e  |".. graphics_han|
00008590  64 6c 65 25 0d 33 2c 4e  e7 20 69 63 6f 6e 25 3e  |dle%.3,N. icon%>|
000085a0  30 20 8c 20 24 74 65 78  74 25 3d 22 53 65 6c 65  |0 . $text%="Sele|
000085b0  63 74 69 6e 67 20 4f 4b  20 77 69 6c 6c 20 6c 6f  |cting OK will lo|
000085c0  61 64 20 74 68 65 20 73  70 65 63 69 66 69 65 64  |ad the specified|
000085d0  20 67 72 61 70 68 69 63  73 20 66 69 6c 65 2e 7c  | graphics file.||
000085e0  4d 22 0d 33 36 13 c9 20  73 61 76 65 5f 68 61 6e  |M".36.. save_han|
000085f0  64 6c 65 25 3a 0d 33 40  48 e7 20 69 63 6f 6e 25  |dle%:.3@H. icon%|
00008600  3d 30 20 8c 20 24 74 65  78 74 25 3d 22 44 72 61  |=0 . $text%="Dra|
00008610  67 20 74 68 69 73 20 69  63 6f 6e 20 74 6f 20 61  |g this icon to a|
00008620  20 64 69 72 65 63 74 6f  72 79 20 76 69 65 77 65  | directory viewe|
00008630  72 20 74 6f 20 73 61 76  65 2e 7c 4d 22 0d 33 4a  |r to save.|M".3J|
00008640  4a e7 20 69 63 6f 6e 25  3d 39 20 8c 20 24 74 65  |J. icon%=9 . $te|
00008650  78 74 25 3d 22 53 65 6c  65 63 74 69 6e 67 20 4f  |xt%="Selecting O|
00008660  4b 20 77 69 6c 6c 20 73  61 76 65 20 74 68 65 20  |K will save the |
00008670  63 75 72 72 65 6e 74 20  67 61 6d 65 20 73 74 61  |current game sta|
00008680  74 75 73 2e 7c 4d 22 0d  33 54 57 e7 20 69 63 6f  |tus.|M".3TW. ico|
00008690  6e 25 3d 31 30 20 8c 20  24 74 65 78 74 25 3d 22  |n%=10 . $text%="|
000086a0  45 6e 74 65 72 20 74 68  65 20 66 69 6c 65 6e 61  |Enter the filena|
000086b0  6d 65 20 69 6e 20 74 68  69 73 20 69 63 6f 6e 2c  |me in this icon,|
000086c0  20 74 68 65 6e 20 70 72  65 73 73 20 52 65 74 75  | then press Retu|
000086d0  72 6e 20 74 6f 20 73 61  76 65 2e 7c 4d 22 0d 33  |rn to save.|M".3|
000086e0  5e 16 c9 20 70 6c 61 79  65 72 73 5f 68 61 6e 64  |^.. players_hand|
000086f0  6c 65 25 3a 0d 33 68 0e  c8 8e 20 69 63 6f 6e 25  |le%:.3h... icon%|
00008700  20 ca 0d 33 72 56 c9 20  31 38 3a 24 74 65 78 74  | ..3rV. 18:$text|
00008710  25 3d 22 54 68 69 73 20  69 63 6f 6e 20 73 68 6f  |%="This icon sho|
00008720  77 73 20 74 68 65 20 73  6b 69 6c 6c 20 6c 65 76  |ws the skill lev|
00008730  65 6c 20 6f 66 20 74 68  65 20 63 6f 6d 70 75 74  |el of the comput|
00008740  65 72 20 70 6c 61 79 65  72 28 73 29 2c 20 69 66  |er player(s), if|
00008750  20 61 6e 79 2e 7c 4d 22  0d 33 7c 68 c9 20 31 39  | any.|M".3|h. 19|
00008760  3a 24 74 65 78 74 25 3d  22 53 65 6c 65 63 74 69  |:$text%="Selecti|
00008770  6e 67 20 74 68 69 73 20  69 63 6f 6e 20 77 69 6c  |ng this icon wil|
00008780  6c 20 64 65 63 72 65 61  73 65 20 74 68 65 20 73  |l decrease the s|
00008790  6b 69 6c 6c 20 6c 65 76  65 6c 20 6f 66 20 74 68  |kill level of th|
000087a0  65 20 63 6f 6d 70 75 74  65 72 20 70 6c 61 79 65  |e computer playe|
000087b0  72 28 73 29 2c 20 69 66  20 61 6e 79 2e 7c 4d 22  |r(s), if any.|M"|
000087c0  0d 33 86 68 c9 20 32 30  3a 24 74 65 78 74 25 3d  |.3.h. 20:$text%=|
000087d0  22 53 65 6c 65 63 74 69  6e 67 20 74 68 69 73 20  |"Selecting this |
000087e0  69 63 6f 6e 20 77 69 6c  6c 20 69 6e 63 72 65 61  |icon will increa|
000087f0  73 65 20 74 68 65 20 73  6b 69 6c 6c 20 6c 65 76  |se the skill lev|
00008800  65 6c 20 6f 66 20 74 68  65 20 63 6f 6d 70 75 74  |el of the comput|
00008810  65 72 20 70 6c 61 79 65  72 28 73 29 2c 20 69 66  |er player(s), if|
00008820  20 61 6e 79 2e 7c 4d 22  0d 33 90 08 c9 20 33 3a  | any.|M".3... 3:|
00008830  0d 33 9a 45 e7 20 50 6c  79 72 31 3d 30 20 8c 20  |.3.E. Plyr1=0 . |
00008840  50 31 24 3d 22 75 73 65  72 22 3a 50 32 24 3d 22  |P1$="user":P2$="|
00008850  63 6f 6d 70 75 74 65 72  22 20 8b 20 50 31 24 3d  |computer" . P1$=|
00008860  22 63 6f 6d 70 75 74 65  72 22 3a 50 32 24 3d 22  |"computer":P2$="|
00008870  75 73 65 72 22 0d 33 a4  5a 24 74 65 78 74 25 3d  |user".3.Z$text%=|
00008880  22 53 65 6c 65 63 74 69  6e 67 20 74 68 69 73 20  |"Selecting this |
00008890  69 63 6f 6e 20 77 69 6c  6c 20 63 68 61 6e 67 65  |icon will change|
000088a0  20 70 6c 61 79 65 72 20  6f 6e 65 20 66 72 6f 6d  | player one from|
000088b0  20 22 2b 50 31 24 2b 22  20 74 6f 20 22 2b 50 32  | "+P1$+" to "+P2|
000088c0  24 2b 22 20 63 6f 6e 74  72 6f 6c 2e 7c 4d 22 0d  |$+" control.|M".|
000088d0  33 ae 08 c9 20 37 3a 0d  33 b8 45 e7 20 50 6c 79  |3... 7:.3.E. Ply|
000088e0  72 32 3d 30 20 8c 20 50  31 24 3d 22 75 73 65 72  |r2=0 . P1$="user|
000088f0  22 3a 50 32 24 3d 22 63  6f 6d 70 75 74 65 72 22  |":P2$="computer"|
00008900  20 8b 20 50 31 24 3d 22  63 6f 6d 70 75 74 65 72  | . P1$="computer|
00008910  22 3a 50 32 24 3d 22 75  73 65 72 22 0d 33 c2 5a  |":P2$="user".3.Z|
00008920  24 74 65 78 74 25 3d 22  53 65 6c 65 63 74 69 6e  |$text%="Selectin|
00008930  67 20 74 68 69 73 20 69  63 6f 6e 20 77 69 6c 6c  |g this icon will|
00008940  20 63 68 61 6e 67 65 20  70 6c 61 79 65 72 20 74  | change player t|
00008950  77 6f 20 66 72 6f 6d 20  22 2b 50 31 24 2b 22 20  |wo from "+P1$+" |
00008960  74 6f 20 22 2b 50 32 24  2b 22 20 63 6f 6e 74 72  |to "+P2$+" contr|
00008970  6f 6c 2e 7c 4d 22 0d 33  cc 05 cb 0d 33 d6 17 c9  |ol.|M".3....3...|
00008980  20 73 74 65 70 74 68 72  75 5f 68 61 6e 64 6c 65  | stepthru_handle|
00008990  25 3a 0d 33 e0 0e c8 8e  20 69 63 6f 6e 25 20 ca  |%:.3.... icon% .|
000089a0  0d 33 ea 44 c9 20 30 3a  24 74 65 78 74 25 3d 22  |.3.D. 0:$text%="|
000089b0  54 68 69 73 20 69 63 6f  6e 20 72 65 73 65 74 73  |This icon resets|
000089c0  20 74 68 65 20 62 6f 61  72 64 20 74 6f 20 74 68  | the board to th|
000089d0  65 20 66 69 72 73 74 20  70 6f 73 69 74 69 6f 6e  |e first position|
000089e0  2e 7c 4d 22 0d 33 f4 41  c9 20 31 3a 24 74 65 78  |.|M".3.A. 1:$tex|
000089f0  74 25 3d 22 54 68 69 73  20 69 63 6f 6e 20 6d 6f  |t%="This icon mo|
00008a00  76 65 73 20 74 68 65 20  67 61 6d 65 20 73 74 61  |ves the game sta|
00008a10  74 75 73 20 62 61 63 6b  20 6f 6e 65 20 6d 6f 76  |tus back one mov|
00008a20  65 2e 7c 4d 22 0d 33 fe  59 c9 20 32 3a 24 74 65  |e.|M".3.Y. 2:$te|
00008a30  78 74 25 3d 22 54 68 69  73 20 69 63 6f 6e 20 73  |xt%="This icon s|
00008a40  65 74 73 20 74 68 65 20  63 75 72 72 65 6e 74 20  |ets the current |
00008a50  67 61 6d 65 20 73 74 61  74 75 73 20 74 6f 20 74  |game status to t|
00008a60  68 61 74 20 73 68 6f 77  6e 20 61 6e 64 20 72 65  |hat shown and re|
00008a70  73 75 6d 65 73 20 70 6c  61 79 2e 7c 4d 22 0d 34  |sumes play.|M".4|
00008a80  08 44 c9 20 33 3a 24 74  65 78 74 25 3d 22 54 68  |.D. 3:$text%="Th|
00008a90  69 73 20 69 63 6f 6e 20  6d 6f 76 65 73 20 74 68  |is icon moves th|
00008aa0  65 20 67 61 6d 65 20 73  74 61 74 75 73 20 66 6f  |e game status fo|
00008ab0  72 77 61 72 64 20 6f 6e  65 20 6d 6f 76 65 2e 7c  |rward one move.||
00008ac0  4d 22 0d 34 12 4c c9 20  34 3a 24 74 65 78 74 25  |M".4.L. 4:$text%|
00008ad0  3d 22 54 68 69 73 20 69  63 6f 6e 20 72 65 73 65  |="This icon rese|
00008ae0  74 73 20 74 68 65 20 62  6f 61 72 64 20 74 6f 20  |ts the board to |
00008af0  74 68 65 20 6c 61 73 74  20 70 6f 73 69 74 69 6f  |the last positio|
00008b00  6e 20 72 65 63 6f 72 64  65 64 2e 7c 4d 22 0d 34  |n recorded.|M".4|
00008b10  1c 05 cb 0d 34 26 05 cb  0d 34 30 1b 21 62 6c 6f  |....4&...40.!blo|
00008b20  63 6b 25 3d 28 a9 24 74  65 78 74 25 2b 32 35 29  |ck%=(.$text%+25)|
00008b30  80 ac 33 0d 34 3a 2b c8  99 22 57 69 6d 70 5f 53  |..3.4:+.."Wimp_S|
00008b40  65 6e 64 4d 65 73 73 61  67 65 22 2c 31 37 2c 62  |endMessage",17,b|
00008b50  6c 6f 63 6b 25 2c 62 6c  6f 63 6b 25 21 34 0d 34  |lock%,block%!4.4|
00008b60  44 05 e1 0d 34 4e 04 0d  34 58 16 dd a4 6e 65 78  |D...4N..4X...nex|
00008b70  74 64 65 70 74 68 28 64  65 70 74 68 29 0d 34 62  |tdepth(depth).4b|
00008b80  16 62 73 63 6f 72 65 28  64 65 70 74 68 29 3d 2d  |.bscore(depth)=-|
00008b90  31 30 30 0d 34 6c 12 70  6a 75 6d 70 28 64 65 70  |100.4l.pjump(dep|
00008ba0  74 68 29 3d a3 0d 34 76  19 e3 20 70 69 65 63 65  |th)=..4v.. piece|
00008bb0  28 64 65 70 74 68 29 3d  30 20 b8 20 33 31 0d 34  |(depth)=0 . 31.4|
00008bc0  80 1a f2 70 6f 6c 6c 3a  e7 20 66 69 6e 69 73 68  |...poll:. finish|
00008bd0  65 64 25 20 f2 65 6e 64  0d 34 8a 23 e7 20 69 6e  |ed% .end.4.#. in|
00008be0  63 6f 6d 70 3d a3 20 8c  20 70 69 65 63 65 28 64  |comp=. . piece(d|
00008bf0  65 70 74 68 29 3d 33 31  3a 3d 30 0d 34 94 12 73  |epth)=31:=0.4..s|
00008c00  63 6f 72 65 28 64 65 70  74 68 29 3d 30 0d 34 9e  |core(depth)=0.4.|
00008c10  64 e7 20 71 75 61 64 28  64 65 70 74 68 2c 31 2c  |d. quad(depth,1,|
00008c20  6e 75 6d 73 71 28 70 69  65 63 65 28 64 65 70 74  |numsq(piece(dept|
00008c30  68 29 29 29 3d a4 67 6f  28 64 65 70 74 68 29 20  |h)))=.go(depth) |
00008c40  84 20 71 75 61 64 28 64  65 70 74 68 2c 31 2c 6e  |. quad(depth,1,n|
00008c50  75 6d 73 71 28 70 69 65  63 65 28 64 65 70 74 68  |umsq(piece(depth|
00008c60  29 29 29 3d a4 6b 67 6f  28 64 65 70 74 68 29 20  |)))=.kgo(depth) |
00008c70  8c 0d 34 a8 23 f2 64 69  72 28 64 65 70 74 68 2c  |..4.#.dir(depth,|
00008c80  6e 75 6d 73 71 28 70 69  65 63 65 28 64 65 70 74  |numsq(piece(dept|
00008c90  68 29 29 29 0d 34 b2 48  6d 61 78 6c 65 76 28 64  |h))).4.Hmaxlev(d|
00008ca0  65 70 74 68 29 3d 30 3a  6c 65 76 28 64 65 70 74  |epth)=0:lev(dept|
00008cb0  68 29 3d 31 3a f2 63 68  65 63 6b 69 66 6a 75 6d  |h)=1:.checkifjum|
00008cc0  70 28 6e 75 6d 73 71 28  70 69 65 63 65 28 64 65  |p(numsq(piece(de|
00008cd0  70 74 68 29 29 2c 64 65  70 74 68 29 0d 34 bc 05  |pth)),depth).4..|
00008ce0  cd 0d 34 c6 05 ed 0d 34  d0 04 0d 34 da 26 e7 20  |..4....4...4.&. |
00008cf0  70 6a 75 6d 70 28 64 65  70 74 68 29 3d b9 20 8c  |pjump(depth)=. .|
00008d00  20 3a 3d 62 73 63 6f 72  65 28 64 65 70 74 68 29  | :=bscore(depth)|
00008d10  0d 34 e4 22 e7 20 64 65  70 74 68 3d 6c 65 76 65  |.4.". depth=leve|
00008d20  6c 25 20 80 20 64 65 70  74 68 3e 32 20 8c 20 3a  |l% . depth>2 . :|
00008d30  3d 30 0d 34 ee 16 62 73  63 6f 72 65 28 64 65 70  |=0.4..bscore(dep|
00008d40  74 68 29 3d 2d 31 30 30  0d 34 f8 19 e3 20 70 69  |th)=-100.4... pi|
00008d50  65 63 65 28 64 65 70 74  68 29 3d 30 20 b8 20 33  |ece(depth)=0 . 3|
00008d60  31 0d 35 02 1a f2 70 6f  6c 6c 3a e7 20 66 69 6e  |1.5...poll:. fin|
00008d70  69 73 68 65 64 25 20 f2  65 6e 64 0d 35 0c 23 e7  |ished% .end.5.#.|
00008d80  20 69 6e 63 6f 6d 70 3d  a3 20 8c 20 70 69 65 63  | incomp=. . piec|
00008d90  65 28 64 65 70 74 68 29  3d 33 31 3a 3d 30 0d 35  |e(depth)=31:=0.5|
00008da0  16 12 73 63 6f 72 65 28  64 65 70 74 68 29 3d 30  |..score(depth)=0|
00008db0  0d 35 20 64 e7 20 71 75  61 64 28 64 65 70 74 68  |.5 d. quad(depth|
00008dc0  2c 31 2c 6e 75 6d 73 71  28 70 69 65 63 65 28 64  |,1,numsq(piece(d|
00008dd0  65 70 74 68 29 29 29 3d  a4 67 6f 28 64 65 70 74  |epth)))=.go(dept|
00008de0  68 29 20 84 20 71 75 61  64 28 64 65 70 74 68 2c  |h) . quad(depth,|
00008df0  31 2c 6e 75 6d 73 71 28  70 69 65 63 65 28 64 65  |1,numsq(piece(de|
00008e00  70 74 68 29 29 29 3d a4  6b 67 6f 28 64 65 70 74  |pth)))=.kgo(dept|
00008e10  68 29 20 8c 0d 35 2a 23  f2 64 69 72 28 64 65 70  |h) ..5*#.dir(dep|
00008e20  74 68 2c 6e 75 6d 73 71  28 70 69 65 63 65 28 64  |th,numsq(piece(d|
00008e30  65 70 74 68 29 29 29 0d  35 34 2b f2 63 68 65 63  |epth))).54+.chec|
00008e40  6b 69 66 6d 6f 76 65 28  6e 75 6d 73 71 28 70 69  |kifmove(numsq(pi|
00008e50  65 63 65 28 64 65 70 74  68 29 29 2c 64 65 70 74  |ece(depth)),dept|
00008e60  68 29 0d 35 3e 05 cd 0d  35 48 05 ed 0d 35 52 04  |h).5>...5H...5R.|
00008e70  0d 35 5c 1d e7 20 70 6a  75 6d 70 28 64 65 70 74  |.5\.. pjump(dept|
00008e80  68 29 3d a3 20 8c 20 3a  3d 2d 35 30 30 0d 35 66  |h)=. . :=-500.5f|
00008e90  12 3d 62 73 63 6f 72 65  28 64 65 70 74 68 29 0d  |.=bscore(depth).|
00008ea0  35 70 05 20 0d 35 7a 13  dd f2 64 69 72 28 64 65  |5p. .5z...dir(de|
00008eb0  70 74 68 2c 70 63 29 0d  35 84 09 64 47 6f 3d 30  |pth,pc).5..dGo=0|
00008ec0  0d 35 8e 1c e7 20 28 64  65 70 74 68 20 80 20 31  |.5... (depth . 1|
00008ed0  29 3d 31 20 8c 20 64 47  6f 3d 47 6f 0d 35 98 1a  |)=1 . dGo=Go.5..|
00008ee0  e7 20 64 47 6f 3d 30 20  80 20 47 6f 3d 32 20 8c  |. dGo=0 . Go=2 .|
00008ef0  20 64 47 6f 3d 31 0d 35  a2 1a e7 20 64 47 6f 3d  | dGo=1.5... dGo=|
00008f00  30 20 80 20 47 6f 3d 31  20 8c 20 64 47 6f 3d 32  |0 . Go=1 . dGo=2|
00008f10  0d 35 ac 21 e7 20 71 75  61 64 28 64 65 70 74 68  |.5.!. quad(depth|
00008f20  2c 31 2c 70 63 29 3e 32  20 8c 20 64 47 6f 2b 3d  |,1,pc)>2 . dGo+=|
00008f30  32 0d 35 b6 25 e7 20 64  47 6f 3d 31 20 8c 20 64  |2.5.%. dGo=1 . d|
00008f40  31 28 64 65 70 74 68 29  3d b9 3a 64 32 28 64 65  |1(depth)=.:d2(de|
00008f50  70 74 68 29 3d a3 0d 35  c0 25 e7 20 64 47 6f 3d  |pth)=..5.%. dGo=|
00008f60  32 20 8c 20 64 32 28 64  65 70 74 68 29 3d b9 3a  |2 . d2(depth)=.:|
00008f70  64 31 28 64 65 70 74 68  29 3d a3 0d 35 ca 25 e7  |d1(depth)=..5.%.|
00008f80  20 64 47 6f 3e 32 20 8c  20 64 31 28 64 65 70 74  | dGo>2 . d1(dept|
00008f90  68 29 3d b9 3a 64 32 28  64 65 70 74 68 29 3d b9  |h)=.:d2(depth)=.|
00008fa0  0d 35 d4 05 e1 0d 35 de  05 20 0d 35 e8 0f dd a4  |.5....5.. .5....|
00008fb0  67 6f 28 64 65 70 74 68  29 0d 35 f2 09 64 47 6f  |go(depth).5..dGo|
00008fc0  3d 30 0d 35 fc 1c e7 20  28 64 65 70 74 68 20 80  |=0.5... (depth .|
00008fd0  20 31 29 3d 31 20 8c 20  64 47 6f 3d 47 6f 0d 36  | 1)=1 . dGo=Go.6|
00008fe0  06 1a e7 20 64 47 6f 3d  30 20 80 20 47 6f 3d 32  |... dGo=0 . Go=2|
00008ff0  20 8c 20 64 47 6f 3d 31  0d 36 10 1a e7 20 64 47  | . dGo=1.6... dG|
00009000  6f 3d 30 20 80 20 47 6f  3d 31 20 8c 20 64 47 6f  |o=0 . Go=1 . dGo|
00009010  3d 32 0d 36 1a 08 3d 64  47 6f 0d 36 24 04 0d 36  |=2.6..=dGo.6$..6|
00009020  2e 10 dd a4 6b 67 6f 28  64 65 70 74 68 29 0d 36  |....kgo(depth).6|
00009030  38 09 64 47 6f 3d 30 0d  36 42 1c e7 20 28 64 65  |8.dGo=0.6B.. (de|
00009040  70 74 68 20 80 20 31 29  3d 31 20 8c 20 64 47 6f  |pth . 1)=1 . dGo|
00009050  3d 47 6f 0d 36 4c 1a e7  20 64 47 6f 3d 30 20 80  |=Go.6L.. dGo=0 .|
00009060  20 47 6f 3d 32 20 8c 20  64 47 6f 3d 31 0d 36 56  | Go=2 . dGo=1.6V|
00009070  1a e7 20 64 47 6f 3d 30  20 80 20 47 6f 3d 31 20  |.. dGo=0 . Go=1 |
00009080  8c 20 64 47 6f 3d 32 0d  36 60 0a 3d 64 47 6f 2b  |. dGo=2.6`.=dGo+|
00009090  32 0d 36 6a 04 0d 36 74  1e dd f2 63 68 65 63 6b  |2.6j..6t...check|
000090a0  69 66 6a 75 6d 70 28 70  69 65 63 65 2c 64 65 70  |ifjump(piece,dep|
000090b0  74 68 29 0d 36 7e 1c 6b  69 6e 67 28 64 65 70 74  |th).6~.king(dept|
000090c0  68 2c 6c 65 76 28 64 65  70 74 68 29 29 3d a3 0d  |h,lev(depth))=..|
000090d0  36 88 32 6f 6c 64 6e 6a  28 64 65 70 74 68 2c 6c  |6.2oldnj(depth,l|
000090e0  65 76 28 64 65 70 74 68  29 29 3d 6e 6a 28 64 65  |ev(depth))=nj(de|
000090f0  70 74 68 2c 6c 65 76 28  64 65 70 74 68 29 2d 31  |pth,lev(depth)-1|
00009100  29 0d 36 92 2f 6e 6a 28  64 65 70 74 68 2c 6c 65  |).6./nj(depth,le|
00009110  76 28 64 65 70 74 68 29  29 3d 6e 6a 28 64 65 70  |v(depth))=nj(dep|
00009120  74 68 2c 6c 65 76 28 64  65 70 74 68 29 2d 31 29  |th,lev(depth)-1)|
00009130  0d 36 9c 32 e7 20 a4 72  6f 77 28 70 69 65 63 65  |.6.2. .row(piece|
00009140  29 2d 32 20 3d 20 a4 72  6f 77 28 70 69 65 63 65  |)-2 = .row(piece|
00009150  2d 31 34 29 20 80 20 64  31 28 64 65 70 74 68 29  |-14) . d1(depth)|
00009160  20 8c 0d 36 a6 40 e7 20  71 75 61 64 28 64 65 70  | ..6.@. quad(dep|
00009170  74 68 2c 6c 65 76 28 64  65 70 74 68 29 2c 70 69  |th,lev(depth),pi|
00009180  65 63 65 2d 31 34 29 3d  30 20 80 20 a4 63 6f 70  |ece-14)=0 . .cop|
00009190  70 28 64 65 70 74 68 2c  70 69 65 63 65 2d 37 29  |p(depth,piece-7)|
000091a0  20 8c 0d 36 b0 5c e7 20  71 75 61 64 28 64 65 70  | ..6.\. quad(dep|
000091b0  74 68 2c 6c 65 76 28 64  65 70 74 68 29 2c 70 69  |th,lev(depth),pi|
000091c0  65 63 65 29 3d 31 20 80  20 28 70 69 65 63 65 2d  |ece)=1 . (piece-|
000091d0  31 34 3e 2d 31 20 80 20  70 69 65 63 65 2d 31 34  |14>-1 . piece-14|
000091e0  3c 38 29 20 8c 20 6b 69  6e 67 28 64 65 70 74 68  |<8) . king(depth|
000091f0  2c 6c 65 76 28 64 65 70  74 68 29 29 3d b9 0d 36  |,lev(depth))=..6|
00009200  ba 52 e3 20 71 3d 30 20  b8 20 33 31 3a 71 75 61  |.R. q=0 . 31:qua|
00009210  64 28 64 65 70 74 68 2c  6c 65 76 28 64 65 70 74  |d(depth,lev(dept|
00009220  68 29 2b 31 2c 6e 75 6d  73 71 28 71 29 29 3d 71  |h)+1,numsq(q))=q|
00009230  75 61 64 28 64 65 70 74  68 2c 6c 65 76 28 64 65  |uad(depth,lev(de|
00009240  70 74 68 29 2c 6e 75 6d  73 71 28 71 29 29 3a ed  |pth),numsq(q)):.|
00009250  0d 36 c4 42 71 75 61 64  28 64 65 70 74 68 2c 6c  |.6.Bquad(depth,l|
00009260  65 76 28 64 65 70 74 68  29 2b 31 2c 70 69 65 63  |ev(depth)+1,piec|
00009270  65 2d 31 34 29 3d 71 75  61 64 28 64 65 70 74 68  |e-14)=quad(depth|
00009280  2c 6c 65 76 28 64 65 70  74 68 29 2c 70 69 65 63  |,lev(depth),piec|
00009290  65 29 0d 36 ce 3e e7 20  6b 69 6e 67 28 64 65 70  |e).6.>. king(dep|
000092a0  74 68 2c 6c 65 76 28 64  65 70 74 68 29 29 20 8c  |th,lev(depth)) .|
000092b0  20 71 75 61 64 28 64 65  70 74 68 2c 6c 65 76 28  | quad(depth,lev(|
000092c0  64 65 70 74 68 29 2c 70  69 65 63 65 29 2b 3d 32  |depth),piece)+=2|
000092d0  0d 36 d8 47 71 75 61 64  28 64 65 70 74 68 2c 6c  |.6.Gquad(depth,l|
000092e0  65 76 28 64 65 70 74 68  29 2b 31 2c 70 69 65 63  |ev(depth)+1,piec|
000092f0  65 2d 37 29 3d 30 3a 71  75 61 64 28 64 65 70 74  |e-7)=0:quad(dept|
00009300  68 2c 6c 65 76 28 64 65  70 74 68 29 2b 31 2c 70  |h,lev(depth)+1,p|
00009310  69 65 63 65 29 3d 30 0d  36 e2 32 6e 6a 28 64 65  |iece)=0.6.2nj(de|
00009320  70 74 68 2c 6c 65 76 28  64 65 70 74 68 29 29 3d  |pth,lev(depth))=|
00009330  6f 6c 64 6e 6a 28 64 65  70 74 68 2c 6c 65 76 28  |oldnj(depth,lev(|
00009340  64 65 70 74 68 29 29 2b  31 0d 36 ec 11 6c 65 76  |depth))+1.6..lev|
00009350  28 64 65 70 74 68 29 2b  3d 31 0d 36 f6 20 f2 63  |(depth)+=1.6. .c|
00009360  68 65 63 6b 69 66 6a 75  6d 70 28 70 69 65 63 65  |heckifjump(piece|
00009370  2d 31 34 2c 64 65 70 74  68 29 0d 37 00 11 6c 65  |-14,depth).7..le|
00009380  76 28 64 65 70 74 68 29  2d 3d 31 0d 37 0a 1c 6b  |v(depth)-=1.7..k|
00009390  69 6e 67 28 64 65 70 74  68 2c 6c 65 76 28 64 65  |ing(depth,lev(de|
000093a0  70 74 68 29 29 3d a3 0d  37 14 12 70 6a 75 6d 70  |pth))=..7..pjump|
000093b0  28 64 65 70 74 68 29 3d  b9 0d 37 1e 05 cd 0d 37  |(depth)=..7....7|
000093c0  28 05 cd 0d 37 32 05 3a  0d 37 3c 32 e7 20 a4 72  |(...72.:.7<2. .r|
000093d0  6f 77 28 70 69 65 63 65  29 2d 32 20 3d 20 a4 72  |ow(piece)-2 = .r|
000093e0  6f 77 28 70 69 65 63 65  2d 31 38 29 20 80 20 64  |ow(piece-18) . d|
000093f0  31 28 64 65 70 74 68 29  20 8c 0d 37 46 40 e7 20  |1(depth) ..7F@. |
00009400  71 75 61 64 28 64 65 70  74 68 2c 6c 65 76 28 64  |quad(depth,lev(d|
00009410  65 70 74 68 29 2c 70 69  65 63 65 2d 31 38 29 3d  |epth),piece-18)=|
00009420  30 20 80 20 a4 63 6f 70  70 28 64 65 70 74 68 2c  |0 . .copp(depth,|
00009430  70 69 65 63 65 2d 39 29  20 8c 0d 37 50 5c e7 20  |piece-9) ..7P\. |
00009440  71 75 61 64 28 64 65 70  74 68 2c 6c 65 76 28 64  |quad(depth,lev(d|
00009450  65 70 74 68 29 2c 70 69  65 63 65 29 3d 31 20 80  |epth),piece)=1 .|
00009460  20 28 70 69 65 63 65 2d  31 38 3e 2d 31 20 80 20  | (piece-18>-1 . |
00009470  70 69 65 63 65 2d 31 38  3c 38 29 20 8c 20 6b 69  |piece-18<8) . ki|
00009480  6e 67 28 64 65 70 74 68  2c 6c 65 76 28 64 65 70  |ng(depth,lev(dep|
00009490  74 68 29 29 3d b9 0d 37  5a 52 e3 20 71 3d 30 20  |th))=..7ZR. q=0 |
000094a0  b8 20 33 31 3a 71 75 61  64 28 64 65 70 74 68 2c  |. 31:quad(depth,|
000094b0  6c 65 76 28 64 65 70 74  68 29 2b 31 2c 6e 75 6d  |lev(depth)+1,num|
000094c0  73 71 28 71 29 29 3d 71  75 61 64 28 64 65 70 74  |sq(q))=quad(dept|
000094d0  68 2c 6c 65 76 28 64 65  70 74 68 29 2c 6e 75 6d  |h,lev(depth),num|
000094e0  73 71 28 71 29 29 3a ed  0d 37 64 42 71 75 61 64  |sq(q)):..7dBquad|
000094f0  28 64 65 70 74 68 2c 6c  65 76 28 64 65 70 74 68  |(depth,lev(depth|
00009500  29 2b 31 2c 70 69 65 63  65 2d 31 38 29 3d 71 75  |)+1,piece-18)=qu|
00009510  61 64 28 64 65 70 74 68  2c 6c 65 76 28 64 65 70  |ad(depth,lev(dep|
00009520  74 68 29 2c 70 69 65 63  65 29 0d 37 6e 47 71 75  |th),piece).7nGqu|
00009530  61 64 28 64 65 70 74 68  2c 6c 65 76 28 64 65 70  |ad(depth,lev(dep|
00009540  74 68 29 2b 31 2c 70 69  65 63 65 2d 39 29 3d 30  |th)+1,piece-9)=0|
00009550  3a 71 75 61 64 28 64 65  70 74 68 2c 6c 65 76 28  |:quad(depth,lev(|
00009560  64 65 70 74 68 29 2b 31  2c 70 69 65 63 65 29 3d  |depth)+1,piece)=|
00009570  30 0d 37 78 32 6e 6a 28  64 65 70 74 68 2c 6c 65  |0.7x2nj(depth,le|
00009580  76 28 64 65 70 74 68 29  29 3d 6f 6c 64 6e 6a 28  |v(depth))=oldnj(|
00009590  64 65 70 74 68 2c 6c 65  76 28 64 65 70 74 68 29  |depth,lev(depth)|
000095a0  29 2b 31 0d 37 82 11 6c  65 76 28 64 65 70 74 68  |)+1.7..lev(depth|
000095b0  29 2b 3d 31 0d 37 8c 20  f2 63 68 65 63 6b 69 66  |)+=1.7. .checkif|
000095c0  6a 75 6d 70 28 70 69 65  63 65 2d 31 38 2c 64 65  |jump(piece-18,de|
000095d0  70 74 68 29 0d 37 96 11  6c 65 76 28 64 65 70 74  |pth).7..lev(dept|
000095e0  68 29 2d 3d 31 0d 37 a0  1c 6b 69 6e 67 28 64 65  |h)-=1.7..king(de|
000095f0  70 74 68 2c 6c 65 76 28  64 65 70 74 68 29 29 3d  |pth,lev(depth))=|
00009600  a3 0d 37 aa 12 70 6a 75  6d 70 28 64 65 70 74 68  |..7..pjump(depth|
00009610  29 3d b9 0d 37 b4 05 cd  0d 37 be 05 cd 0d 37 c8  |)=..7....7....7.|
00009620  05 3a 0d 37 d2 32 e7 20  a4 72 6f 77 28 70 69 65  |.:.7.2. .row(pie|
00009630  63 65 29 2b 32 20 3d 20  a4 72 6f 77 28 70 69 65  |ce)+2 = .row(pie|
00009640  63 65 2b 31 34 29 20 80  20 64 32 28 64 65 70 74  |ce+14) . d2(dept|
00009650  68 29 20 8c 0d 37 dc 40  e7 20 71 75 61 64 28 64  |h) ..7.@. quad(d|
00009660  65 70 74 68 2c 6c 65 76  28 64 65 70 74 68 29 2c  |epth,lev(depth),|
00009670  70 69 65 63 65 2b 31 34  29 3d 30 20 80 20 a4 63  |piece+14)=0 . .c|
00009680  6f 70 70 28 64 65 70 74  68 2c 70 69 65 63 65 2b  |opp(depth,piece+|
00009690  37 29 20 8c 0d 37 e6 5d  e7 20 71 75 61 64 28 64  |7) ..7.]. quad(d|
000096a0  65 70 74 68 2c 6c 65 76  28 64 65 70 74 68 29 2c  |epth,lev(depth),|
000096b0  70 69 65 63 65 29 3d 32  20 80 20 28 70 69 65 63  |piece)=2 . (piec|
000096c0  65 2b 31 34 3e 35 35 20  80 20 70 69 65 63 65 2b  |e+14>55 . piece+|
000096d0  31 34 3c 36 34 29 20 8c  20 6b 69 6e 67 28 64 65  |14<64) . king(de|
000096e0  70 74 68 2c 6c 65 76 28  64 65 70 74 68 29 29 3d  |pth,lev(depth))=|
000096f0  b9 0d 37 f0 52 e3 20 71  3d 30 20 b8 20 33 31 3a  |..7.R. q=0 . 31:|
00009700  71 75 61 64 28 64 65 70  74 68 2c 6c 65 76 28 64  |quad(depth,lev(d|
00009710  65 70 74 68 29 2b 31 2c  6e 75 6d 73 71 28 71 29  |epth)+1,numsq(q)|
00009720  29 3d 71 75 61 64 28 64  65 70 74 68 2c 6c 65 76  |)=quad(depth,lev|
00009730  28 64 65 70 74 68 29 2c  6e 75 6d 73 71 28 71 29  |(depth),numsq(q)|
00009740  29 3a ed 0d 37 fa 42 71  75 61 64 28 64 65 70 74  |):..7.Bquad(dept|
00009750  68 2c 6c 65 76 28 64 65  70 74 68 29 2b 31 2c 70  |h,lev(depth)+1,p|
00009760  69 65 63 65 2b 31 34 29  3d 71 75 61 64 28 64 65  |iece+14)=quad(de|
00009770  70 74 68 2c 6c 65 76 28  64 65 70 74 68 29 2c 70  |pth,lev(depth),p|
00009780  69 65 63 65 29 0d 38 04  47 71 75 61 64 28 64 65  |iece).8.Gquad(de|
00009790  70 74 68 2c 6c 65 76 28  64 65 70 74 68 29 2b 31  |pth,lev(depth)+1|
000097a0  2c 70 69 65 63 65 2b 37  29 3d 30 3a 71 75 61 64  |,piece+7)=0:quad|
000097b0  28 64 65 70 74 68 2c 6c  65 76 28 64 65 70 74 68  |(depth,lev(depth|
000097c0  29 2b 31 2c 70 69 65 63  65 29 3d 30 0d 38 0e 32  |)+1,piece)=0.8.2|
000097d0  6e 6a 28 64 65 70 74 68  2c 6c 65 76 28 64 65 70  |nj(depth,lev(dep|
000097e0  74 68 29 29 3d 6f 6c 64  6e 6a 28 64 65 70 74 68  |th))=oldnj(depth|
000097f0  2c 6c 65 76 28 64 65 70  74 68 29 29 2b 31 0d 38  |,lev(depth))+1.8|
00009800  18 11 6c 65 76 28 64 65  70 74 68 29 2b 3d 31 0d  |..lev(depth)+=1.|
00009810  38 22 20 f2 63 68 65 63  6b 69 66 6a 75 6d 70 28  |8" .checkifjump(|
00009820  70 69 65 63 65 2b 31 34  2c 64 65 70 74 68 29 0d  |piece+14,depth).|
00009830  38 2c 11 6c 65 76 28 64  65 70 74 68 29 2d 3d 31  |8,.lev(depth)-=1|
00009840  0d 38 36 1c 6b 69 6e 67  28 64 65 70 74 68 2c 6c  |.86.king(depth,l|
00009850  65 76 28 64 65 70 74 68  29 29 3d a3 0d 38 40 12  |ev(depth))=..8@.|
00009860  70 6a 75 6d 70 28 64 65  70 74 68 29 3d b9 0d 38  |pjump(depth)=..8|
00009870  4a 05 cd 0d 38 54 05 cd  0d 38 5e 05 3a 0d 38 68  |J...8T...8^.:.8h|
00009880  32 e7 20 a4 72 6f 77 28  70 69 65 63 65 29 2b 32  |2. .row(piece)+2|
00009890  20 3d 20 a4 72 6f 77 28  70 69 65 63 65 2b 31 38  | = .row(piece+18|
000098a0  29 20 80 20 64 32 28 64  65 70 74 68 29 20 8c 0d  |) . d2(depth) ..|
000098b0  38 72 40 e7 20 71 75 61  64 28 64 65 70 74 68 2c  |8r@. quad(depth,|
000098c0  6c 65 76 28 64 65 70 74  68 29 2c 70 69 65 63 65  |lev(depth),piece|
000098d0  2b 31 38 29 3d 30 20 80  20 a4 63 6f 70 70 28 64  |+18)=0 . .copp(d|
000098e0  65 70 74 68 2c 70 69 65  63 65 2b 39 29 20 8c 0d  |epth,piece+9) ..|
000098f0  38 7c 5d e7 20 71 75 61  64 28 64 65 70 74 68 2c  |8|]. quad(depth,|
00009900  6c 65 76 28 64 65 70 74  68 29 2c 70 69 65 63 65  |lev(depth),piece|
00009910  29 3d 32 20 80 20 28 70  69 65 63 65 2b 31 38 3e  |)=2 . (piece+18>|
00009920  35 35 20 80 20 70 69 65  63 65 2b 31 38 3c 36 34  |55 . piece+18<64|
00009930  29 20 8c 20 6b 69 6e 67  28 64 65 70 74 68 2c 6c  |) . king(depth,l|
00009940  65 76 28 64 65 70 74 68  29 29 3d b9 0d 38 86 52  |ev(depth))=..8.R|
00009950  e3 20 71 3d 30 20 b8 20  33 31 3a 71 75 61 64 28  |. q=0 . 31:quad(|
00009960  64 65 70 74 68 2c 6c 65  76 28 64 65 70 74 68 29  |depth,lev(depth)|
00009970  2b 31 2c 6e 75 6d 73 71  28 71 29 29 3d 71 75 61  |+1,numsq(q))=qua|
00009980  64 28 64 65 70 74 68 2c  6c 65 76 28 64 65 70 74  |d(depth,lev(dept|
00009990  68 29 2c 6e 75 6d 73 71  28 71 29 29 3a ed 0d 38  |h),numsq(q)):..8|
000099a0  90 42 71 75 61 64 28 64  65 70 74 68 2c 6c 65 76  |.Bquad(depth,lev|
000099b0  28 64 65 70 74 68 29 2b  31 2c 70 69 65 63 65 2b  |(depth)+1,piece+|
000099c0  31 38 29 3d 71 75 61 64  28 64 65 70 74 68 2c 6c  |18)=quad(depth,l|
000099d0  65 76 28 64 65 70 74 68  29 2c 70 69 65 63 65 29  |ev(depth),piece)|
000099e0  0d 38 9a 47 71 75 61 64  28 64 65 70 74 68 2c 6c  |.8.Gquad(depth,l|
000099f0  65 76 28 64 65 70 74 68  29 2b 31 2c 70 69 65 63  |ev(depth)+1,piec|
00009a00  65 2b 39 29 3d 30 3a 71  75 61 64 28 64 65 70 74  |e+9)=0:quad(dept|
00009a10  68 2c 6c 65 76 28 64 65  70 74 68 29 2b 31 2c 70  |h,lev(depth)+1,p|
00009a20  69 65 63 65 29 3d 30 0d  38 a4 32 6e 6a 28 64 65  |iece)=0.8.2nj(de|
00009a30  70 74 68 2c 6c 65 76 28  64 65 70 74 68 29 29 3d  |pth,lev(depth))=|
00009a40  6f 6c 64 6e 6a 28 64 65  70 74 68 2c 6c 65 76 28  |oldnj(depth,lev(|
00009a50  64 65 70 74 68 29 29 2b  31 0d 38 ae 11 6c 65 76  |depth))+1.8..lev|
00009a60  28 64 65 70 74 68 29 2b  3d 31 0d 38 b8 20 f2 63  |(depth)+=1.8. .c|
00009a70  68 65 63 6b 69 66 6a 75  6d 70 28 70 69 65 63 65  |heckifjump(piece|
00009a80  2b 31 38 2c 64 65 70 74  68 29 0d 38 c2 11 6c 65  |+18,depth).8..le|
00009a90  76 28 64 65 70 74 68 29  2d 3d 31 0d 38 cc 1c 6b  |v(depth)-=1.8..k|
00009aa0  69 6e 67 28 64 65 70 74  68 2c 6c 65 76 28 64 65  |ing(depth,lev(de|
00009ab0  70 74 68 29 29 3d a3 0d  38 d6 12 70 6a 75 6d 70  |pth))=..8..pjump|
00009ac0  28 64 65 70 74 68 29 3d  b9 0d 38 e0 05 cd 0d 38  |(depth)=..8....8|
00009ad0  ea 05 cd 0d 38 f4 05 3a  0d 38 fe 43 e7 20 6c 65  |....8..:.8.C. le|
00009ae0  76 28 64 65 70 74 68 29  3e 31 20 80 20 6f 6c 64  |v(depth)>1 . old|
00009af0  6e 6a 28 64 65 70 74 68  2c 6c 65 76 28 64 65 70  |nj(depth,lev(dep|
00009b00  74 68 29 29 3d 6e 6a 28  64 65 70 74 68 2c 6c 65  |th))=nj(depth,le|
00009b10  76 28 64 65 70 74 68 29  29 20 8c 0d 39 08 21 74  |v(depth)) ..9.!t|
00009b20  65 6d 70 73 63 6f 72 65  28 64 65 70 74 68 29 3d  |empscore(depth)=|
00009b30  6c 65 76 28 64 65 70 74  68 29 2b 31 0d 39 12 34  |lev(depth)+1.9.4|
00009b40  e7 20 6b 69 6e 67 28 64  65 70 74 68 2c 6c 65 76  |. king(depth,lev|
00009b50  28 64 65 70 74 68 29 2d  31 29 20 8c 20 74 65 6d  |(depth)-1) . tem|
00009b60  70 73 63 6f 72 65 28 64  65 70 74 68 29 2b 3d 31  |pscore(depth)+=1|
00009b70  0d 39 1c 39 e7 20 28 64  65 70 74 68 20 80 20 31  |.9.9. (depth . 1|
00009b80  29 3d 30 20 8c 20 74 65  6d 70 73 63 6f 72 65 28  |)=0 . tempscore(|
00009b90  64 65 70 74 68 29 3d 74  65 6d 70 73 63 6f 72 65  |depth)=tempscore|
00009ba0  28 64 65 70 74 68 29 2a  32 0d 39 26 14 e7 20 64  |(depth)*2.9&.. d|
00009bb0  65 70 74 68 3c 6c 65 76  65 6c 25 20 8c 0d 39 30  |epth<level% ..90|
00009bc0  0c e3 20 71 3d 30 b8 33  31 0d 39 3a 3c 71 75 61  |.. q=0.31.9:<qua|
00009bd0  64 28 64 65 70 74 68 2b  31 2c 31 2c 6e 75 6d 73  |d(depth+1,1,nums|
00009be0  71 28 71 29 29 3d 71 75  61 64 28 64 65 70 74 68  |q(q))=quad(depth|
00009bf0  2c 6c 65 76 28 64 65 70  74 68 29 2c 6e 75 6d 73  |,lev(depth),nums|
00009c00  71 28 71 29 29 0d 39 44  05 ed 0d 39 4e 29 74 65  |q(q)).9D...9N)te|
00009c10  6d 70 73 63 6f 72 65 28  64 65 70 74 68 29 2d 3d  |mpscore(depth)-=|
00009c20  a4 6e 65 78 74 64 65 70  74 68 28 64 65 70 74 68  |.nextdepth(depth|
00009c30  2b 31 29 0d 39 58 05 cd  0d 39 62 52 e7 20 74 65  |+1).9X...9bR. te|
00009c40  6d 70 73 63 6f 72 65 28  64 65 70 74 68 29 3e 62  |mpscore(depth)>b|
00009c50  73 63 6f 72 65 28 64 65  70 74 68 29 20 84 20 28  |score(depth) . (|
00009c60  74 65 6d 70 73 63 6f 72  65 28 64 65 70 74 68 29  |tempscore(depth)|
00009c70  3d 62 73 63 6f 72 65 28  64 65 70 74 68 29 20 80  |=bscore(depth) .|
00009c80  20 b3 28 32 29 3d 32 29  20 8c 0d 39 6c 22 62 73  | .(2)=2) ..9l"bs|
00009c90  63 6f 72 65 28 64 65 70  74 68 29 3d 74 65 6d 70  |core(depth)=temp|
00009ca0  73 63 6f 72 65 28 64 65  70 74 68 29 0d 39 76 0f  |score(depth).9v.|
00009cb0  e7 20 64 65 70 74 68 3d  31 20 8c 0d 39 80 0c e3  |. depth=1 ..9...|
00009cc0  20 71 3d 30 b8 36 33 0d  39 8a 1f 62 65 73 74 70  | q=0.63.9..bestp|
00009cd0  6f 73 28 71 29 3d 71 75  61 64 28 31 2c 6c 65 76  |os(q)=quad(1,lev|
00009ce0  28 31 29 2c 71 29 0d 39  94 05 ed 0d 39 9e 05 cd  |(1),q).9....9...|
00009cf0  0d 39 a8 05 cd 0d 39 b2  05 cd 0d 39 bc 05 e1 0d  |.9....9....9....|
00009d00  39 c6 05 20 0d 39 d0 1e  dd f2 63 68 65 63 6b 69  |9.. .9....checki|
00009d10  66 6d 6f 76 65 28 70 69  65 63 65 2c 64 65 70 74  |fmove(piece,dept|
00009d20  68 29 0d 39 da 22 6b 69  6e 67 28 64 65 70 74 68  |h).9."king(depth|
00009d30  2c 31 29 3d a3 3a 70 6d  6f 76 65 28 64 65 70 74  |,1)=.:pmove(dept|
00009d40  68 29 3d a3 0d 39 e4 04  0d 39 ee 31 e7 20 a4 72  |h)=..9...9.1. .r|
00009d50  6f 77 28 70 69 65 63 65  29 2d 31 20 3d 20 a4 72  |ow(piece)-1 = .r|
00009d60  6f 77 28 70 69 65 63 65  2d 37 29 20 80 20 64 31  |ow(piece-7) . d1|
00009d70  28 64 65 70 74 68 29 20  8c 0d 39 f8 1f e7 20 71  |(depth) ..9... q|
00009d80  75 61 64 28 64 65 70 74  68 2c 31 2c 70 69 65 63  |uad(depth,1,piec|
00009d90  65 2d 37 29 3d 30 20 8c  0d 3a 02 48 e7 20 71 75  |e-7)=0 ..:.H. qu|
00009da0  61 64 28 64 65 70 74 68  2c 31 2c 70 69 65 63 65  |ad(depth,1,piece|
00009db0  29 3d 31 20 80 20 28 70  69 65 63 65 2d 37 3e 2d  |)=1 . (piece-7>-|
00009dc0  31 20 80 20 70 69 65 63  65 2d 37 3c 38 29 20 8c  |1 . piece-7<8) .|
00009dd0  20 6b 69 6e 67 28 64 65  70 74 68 2c 31 29 3d b9  | king(depth,1)=.|
00009de0  0d 3a 0c 13 73 63 6f 72  65 28 64 65 70 74 68 29  |.:..score(depth)|
00009df0  3d 2e 35 0d 3a 16 26 e7  20 6b 69 6e 67 28 64 65  |=.5.:.&. king(de|
00009e00  70 74 68 2c 31 29 20 8c  20 73 63 6f 72 65 28 64  |pth,1) . score(d|
00009e10  65 70 74 68 29 2b 3d 2e  34 0d 3a 20 31 e7 20 28  |epth)+=.4.: 1. (|
00009e20  64 65 70 74 68 20 80 20  31 29 3d 30 20 8c 20 73  |depth . 1)=0 . s|
00009e30  63 6f 72 65 28 64 65 70  74 68 29 3d 73 63 6f 72  |core(depth)=scor|
00009e40  65 28 64 65 70 74 68 29  2a 32 0d 3a 2a 1e e7 20  |e(depth)*2.:*.. |
00009e50  64 65 70 74 68 3c 6c 65  76 65 6c 25 20 84 20 64  |depth<level% . d|
00009e60  65 70 74 68 3d 31 20 8c  0d 3a 34 0e e3 20 71 3d  |epth=1 ..:4.. q=|
00009e70  30 20 b8 20 33 31 0d 3a  3e 33 71 75 61 64 28 64  |0 . 31.:>3quad(d|
00009e80  65 70 74 68 2b 31 2c 31  2c 6e 75 6d 73 71 28 71  |epth+1,1,numsq(q|
00009e90  29 29 3d 71 75 61 64 28  64 65 70 74 68 2c 31 2c  |))=quad(depth,1,|
00009ea0  6e 75 6d 73 71 28 71 29  29 0d 3a 48 05 ed 0d 3a  |numsq(q)).:H...:|
00009eb0  52 31 71 75 61 64 28 64  65 70 74 68 2b 31 2c 31  |R1quad(depth+1,1|
00009ec0  2c 70 69 65 63 65 2d 37  29 3d 71 75 61 64 28 64  |,piece-7)=quad(d|
00009ed0  65 70 74 68 2b 31 2c 31  2c 70 69 65 63 65 29 0d  |epth+1,1,piece).|
00009ee0  3a 5c 1b 71 75 61 64 28  64 65 70 74 68 2b 31 2c  |:\.quad(depth+1,|
00009ef0  31 2c 70 69 65 63 65 29  3d 30 0d 3a 66 30 e7 20  |1,piece)=0.:f0. |
00009f00  6b 69 6e 67 28 64 65 70  74 68 2c 31 29 20 8c 20  |king(depth,1) . |
00009f10  71 75 61 64 28 64 65 70  74 68 2b 31 2c 31 2c 70  |quad(depth+1,1,p|
00009f20  69 65 63 65 2d 37 29 2b  3d 32 0d 3a 70 04 0d 3a  |iece-7)+=2.:p..:|
00009f30  7a 04 0d 3a 84 04 0d 3a  8e 36 e7 20 64 65 70 74  |z..:...:.6. dept|
00009f40  68 3c 6c 65 76 65 6c 25  20 8c 20 73 63 6f 72 65  |h<level% . score|
00009f50  28 64 65 70 74 68 29 2d  3d a4 6e 65 78 74 64 65  |(depth)-=.nextde|
00009f60  70 74 68 28 64 65 70 74  68 2b 31 29 0d 3a 98 05  |pth(depth+1).:..|
00009f70  cd 0d 3a a2 58 e7 20 28  28 73 63 6f 72 65 28 64  |..:.X. ((score(d|
00009f80  65 70 74 68 29 3e 62 73  63 6f 72 65 28 64 65 70  |epth)>bscore(dep|
00009f90  74 68 29 29 20 84 20 28  73 63 6f 72 65 28 64 65  |th)) . (score(de|
00009fa0  70 74 68 29 3d 62 73 63  6f 72 65 28 64 65 70 74  |pth)=bscore(dept|
00009fb0  68 29 20 80 20 b3 28 32  29 3d 32 29 29 20 80 20  |h) . .(2)=2)) . |
00009fc0  64 65 70 74 68 3d 31 20  8c 0d 3a ac 1e 62 73 63  |depth=1 ..:..bsc|
00009fd0  6f 72 65 28 64 65 70 74  68 29 3d 73 63 6f 72 65  |ore(depth)=score|
00009fe0  28 64 65 70 74 68 29 0d  3a b6 0e e3 20 71 3d 30  |(depth).:... q=0|
00009ff0  20 b8 20 33 31 0d 3a c0  2e 62 65 73 74 70 6f 73  | . 31.:..bestpos|
0000a000  28 6e 75 6d 73 71 28 71  29 29 3d 71 75 61 64 28  |(numsq(q))=quad(|
0000a010  64 65 70 74 68 2b 31 2c  31 2c 6e 75 6d 73 71 28  |depth+1,1,numsq(|
0000a020  71 29 29 0d 3a ca 05 ed  0d 3a d4 05 cd 0d 3a de  |q)).:....:....:.|
0000a030  21 70 6a 75 6d 70 28 64  65 70 74 68 29 3d b9 3a  |!pjump(depth)=.:|
0000a040  70 6d 6f 76 65 28 64 65  70 74 68 29 3d b9 0d 3a  |pmove(depth)=..:|
0000a050  e8 13 6b 69 6e 67 28 64  65 70 74 68 2c 31 29 3d  |..king(depth,1)=|
0000a060  a3 0d 3a f2 05 cd 0d 3a  fc 05 cd 0d 3b 06 05 3a  |..:....:....;..:|
0000a070  0d 3b 10 31 e7 20 a4 72  6f 77 28 70 69 65 63 65  |.;.1. .row(piece|
0000a080  29 2d 31 20 3d 20 a4 72  6f 77 28 70 69 65 63 65  |)-1 = .row(piece|
0000a090  2d 39 29 20 80 20 64 31  28 64 65 70 74 68 29 20  |-9) . d1(depth) |
0000a0a0  8c 0d 3b 1a 1f e7 20 71  75 61 64 28 64 65 70 74  |..;... quad(dept|
0000a0b0  68 2c 31 2c 70 69 65 63  65 2d 39 29 3d 30 20 8c  |h,1,piece-9)=0 .|
0000a0c0  0d 3b 24 48 e7 20 71 75  61 64 28 64 65 70 74 68  |.;$H. quad(depth|
0000a0d0  2c 31 2c 70 69 65 63 65  29 3d 31 20 80 20 28 70  |,1,piece)=1 . (p|
0000a0e0  69 65 63 65 2d 39 3e 2d  31 20 80 20 70 69 65 63  |iece-9>-1 . piec|
0000a0f0  65 2d 39 3c 38 29 20 8c  20 6b 69 6e 67 28 64 65  |e-9<8) . king(de|
0000a100  70 74 68 2c 31 29 3d b9  0d 3b 2e 13 73 63 6f 72  |pth,1)=..;..scor|
0000a110  65 28 64 65 70 74 68 29  3d 2e 35 0d 3b 38 26 e7  |e(depth)=.5.;8&.|
0000a120  20 6b 69 6e 67 28 64 65  70 74 68 2c 31 29 20 8c  | king(depth,1) .|
0000a130  20 73 63 6f 72 65 28 64  65 70 74 68 29 2b 3d 2e  | score(depth)+=.|
0000a140  34 0d 3b 42 31 e7 20 28  64 65 70 74 68 20 80 20  |4.;B1. (depth . |
0000a150  31 29 3d 30 20 8c 20 73  63 6f 72 65 28 64 65 70  |1)=0 . score(dep|
0000a160  74 68 29 3d 73 63 6f 72  65 28 64 65 70 74 68 29  |th)=score(depth)|
0000a170  2a 32 0d 3b 4c 1e e7 20  64 65 70 74 68 3c 6c 65  |*2.;L.. depth<le|
0000a180  76 65 6c 25 20 84 20 64  65 70 74 68 3d 31 20 8c  |vel% . depth=1 .|
0000a190  0d 3b 56 0e e3 20 71 3d  30 20 b8 20 33 31 0d 3b  |.;V.. q=0 . 31.;|
0000a1a0  60 33 71 75 61 64 28 64  65 70 74 68 2b 31 2c 31  |`3quad(depth+1,1|
0000a1b0  2c 6e 75 6d 73 71 28 71  29 29 3d 71 75 61 64 28  |,numsq(q))=quad(|
0000a1c0  64 65 70 74 68 2c 31 2c  6e 75 6d 73 71 28 71 29  |depth,1,numsq(q)|
0000a1d0  29 0d 3b 6a 05 ed 0d 3b  74 31 71 75 61 64 28 64  |).;j...;t1quad(d|
0000a1e0  65 70 74 68 2b 31 2c 31  2c 70 69 65 63 65 2d 39  |epth+1,1,piece-9|
0000a1f0  29 3d 71 75 61 64 28 64  65 70 74 68 2b 31 2c 31  |)=quad(depth+1,1|
0000a200  2c 70 69 65 63 65 29 0d  3b 7e 1b 71 75 61 64 28  |,piece).;~.quad(|
0000a210  64 65 70 74 68 2b 31 2c  31 2c 70 69 65 63 65 29  |depth+1,1,piece)|
0000a220  3d 30 0d 3b 88 30 e7 20  6b 69 6e 67 28 64 65 70  |=0.;.0. king(dep|
0000a230  74 68 2c 31 29 20 8c 20  71 75 61 64 28 64 65 70  |th,1) . quad(dep|
0000a240  74 68 2b 31 2c 31 2c 70  69 65 63 65 2d 39 29 2b  |th+1,1,piece-9)+|
0000a250  3d 32 0d 3b 92 36 e7 20  64 65 70 74 68 3c 6c 65  |=2.;.6. depth<le|
0000a260  76 65 6c 25 20 8c 20 73  63 6f 72 65 28 64 65 70  |vel% . score(dep|
0000a270  74 68 29 2d 3d a4 6e 65  78 74 64 65 70 74 68 28  |th)-=.nextdepth(|
0000a280  64 65 70 74 68 2b 31 29  0d 3b 9c 05 cd 0d 3b a6  |depth+1).;....;.|
0000a290  58 e7 20 28 28 73 63 6f  72 65 28 64 65 70 74 68  |X. ((score(depth|
0000a2a0  29 3e 62 73 63 6f 72 65  28 64 65 70 74 68 29 29  |)>bscore(depth))|
0000a2b0  20 84 20 28 73 63 6f 72  65 28 64 65 70 74 68 29  | . (score(depth)|
0000a2c0  3d 62 73 63 6f 72 65 28  64 65 70 74 68 29 20 80  |=bscore(depth) .|
0000a2d0  20 b3 28 32 29 3d 32 29  29 20 80 20 64 65 70 74  | .(2)=2)) . dept|
0000a2e0  68 3d 31 20 8c 0d 3b b0  1e 62 73 63 6f 72 65 28  |h=1 ..;..bscore(|
0000a2f0  64 65 70 74 68 29 3d 73  63 6f 72 65 28 64 65 70  |depth)=score(dep|
0000a300  74 68 29 0d 3b ba 0e e3  20 71 3d 30 20 b8 20 33  |th).;... q=0 . 3|
0000a310  31 0d 3b c4 2e 62 65 73  74 70 6f 73 28 6e 75 6d  |1.;..bestpos(num|
0000a320  73 71 28 71 29 29 3d 71  75 61 64 28 64 65 70 74  |sq(q))=quad(dept|
0000a330  68 2b 31 2c 31 2c 6e 75  6d 73 71 28 71 29 29 0d  |h+1,1,numsq(q)).|
0000a340  3b ce 05 ed 0d 3b d8 05  cd 0d 3b e2 21 70 6a 75  |;....;....;.!pju|
0000a350  6d 70 28 64 65 70 74 68  29 3d b9 3a 70 6d 6f 76  |mp(depth)=.:pmov|
0000a360  65 28 64 65 70 74 68 29  3d b9 0d 3b ec 13 6b 69  |e(depth)=..;..ki|
0000a370  6e 67 28 64 65 70 74 68  2c 31 29 3d a3 0d 3b f6  |ng(depth,1)=..;.|
0000a380  05 cd 0d 3c 00 05 cd 0d  3c 0a 05 3a 0d 3c 14 31  |...<....<..:.<.1|
0000a390  e7 20 a4 72 6f 77 28 70  69 65 63 65 29 2b 31 20  |. .row(piece)+1 |
0000a3a0  3d 20 a4 72 6f 77 28 70  69 65 63 65 2b 37 29 20  |= .row(piece+7) |
0000a3b0  80 20 64 32 28 64 65 70  74 68 29 20 8c 0d 3c 1e  |. d2(depth) ..<.|
0000a3c0  1f e7 20 71 75 61 64 28  64 65 70 74 68 2c 31 2c  |.. quad(depth,1,|
0000a3d0  70 69 65 63 65 2b 37 29  3d 30 20 8c 0d 3c 28 49  |piece+7)=0 ..<(I|
0000a3e0  e7 20 71 75 61 64 28 64  65 70 74 68 2c 31 2c 70  |. quad(depth,1,p|
0000a3f0  69 65 63 65 29 3d 31 20  80 20 28 70 69 65 63 65  |iece)=1 . (piece|
0000a400  2b 37 3e 35 35 20 80 20  70 69 65 63 65 2b 37 3c  |+7>55 . piece+7<|
0000a410  36 34 29 20 8c 20 6b 69  6e 67 28 64 65 70 74 68  |64) . king(depth|
0000a420  2c 31 29 3d b9 0d 3c 32  13 73 63 6f 72 65 28 64  |,1)=..<2.score(d|
0000a430  65 70 74 68 29 3d 2e 35  0d 3c 3c 26 e7 20 6b 69  |epth)=.5.<<&. ki|
0000a440  6e 67 28 64 65 70 74 68  2c 31 29 20 8c 20 73 63  |ng(depth,1) . sc|
0000a450  6f 72 65 28 64 65 70 74  68 29 2b 3d 2e 34 0d 3c  |ore(depth)+=.4.<|
0000a460  46 31 e7 20 28 64 65 70  74 68 20 80 20 31 29 3d  |F1. (depth . 1)=|
0000a470  30 20 8c 20 73 63 6f 72  65 28 64 65 70 74 68 29  |0 . score(depth)|
0000a480  3d 73 63 6f 72 65 28 64  65 70 74 68 29 2a 32 0d  |=score(depth)*2.|
0000a490  3c 50 1e e7 20 64 65 70  74 68 3c 6c 65 76 65 6c  |<P.. depth<level|
0000a4a0  25 20 84 20 64 65 70 74  68 3d 31 20 8c 0d 3c 5a  |% . depth=1 ..<Z|
0000a4b0  0e e3 20 71 3d 30 20 b8  20 33 31 0d 3c 64 33 71  |.. q=0 . 31.<d3q|
0000a4c0  75 61 64 28 64 65 70 74  68 2b 31 2c 31 2c 6e 75  |uad(depth+1,1,nu|
0000a4d0  6d 73 71 28 71 29 29 3d  71 75 61 64 28 64 65 70  |msq(q))=quad(dep|
0000a4e0  74 68 2c 31 2c 6e 75 6d  73 71 28 71 29 29 0d 3c  |th,1,numsq(q)).<|
0000a4f0  6e 05 ed 0d 3c 78 31 71  75 61 64 28 64 65 70 74  |n...<x1quad(dept|
0000a500  68 2b 31 2c 31 2c 70 69  65 63 65 2b 37 29 3d 71  |h+1,1,piece+7)=q|
0000a510  75 61 64 28 64 65 70 74  68 2b 31 2c 31 2c 70 69  |uad(depth+1,1,pi|
0000a520  65 63 65 29 0d 3c 82 1b  71 75 61 64 28 64 65 70  |ece).<..quad(dep|
0000a530  74 68 2b 31 2c 31 2c 70  69 65 63 65 29 3d 30 0d  |th+1,1,piece)=0.|
0000a540  3c 8c 30 e7 20 6b 69 6e  67 28 64 65 70 74 68 2c  |<.0. king(depth,|
0000a550  31 29 20 8c 20 71 75 61  64 28 64 65 70 74 68 2b  |1) . quad(depth+|
0000a560  31 2c 31 2c 70 69 65 63  65 2b 37 29 2b 3d 32 0d  |1,1,piece+7)+=2.|
0000a570  3c 96 36 e7 20 64 65 70  74 68 3c 6c 65 76 65 6c  |<.6. depth<level|
0000a580  25 20 8c 20 73 63 6f 72  65 28 64 65 70 74 68 29  |% . score(depth)|
0000a590  2d 3d a4 6e 65 78 74 64  65 70 74 68 28 64 65 70  |-=.nextdepth(dep|
0000a5a0  74 68 2b 31 29 0d 3c a0  05 cd 0d 3c aa 58 e7 20  |th+1).<....<.X. |
0000a5b0  28 28 73 63 6f 72 65 28  64 65 70 74 68 29 3e 62  |((score(depth)>b|
0000a5c0  73 63 6f 72 65 28 64 65  70 74 68 29 29 20 84 20  |score(depth)) . |
0000a5d0  28 73 63 6f 72 65 28 64  65 70 74 68 29 3d 62 73  |(score(depth)=bs|
0000a5e0  63 6f 72 65 28 64 65 70  74 68 29 20 80 20 b3 28  |core(depth) . .(|
0000a5f0  32 29 3d 32 29 29 20 80  20 64 65 70 74 68 3d 31  |2)=2)) . depth=1|
0000a600  20 8c 0d 3c b4 1e 62 73  63 6f 72 65 28 64 65 70  | ..<..bscore(dep|
0000a610  74 68 29 3d 73 63 6f 72  65 28 64 65 70 74 68 29  |th)=score(depth)|
0000a620  0d 3c be 0e e3 20 71 3d  30 20 b8 20 33 31 0d 3c  |.<... q=0 . 31.<|
0000a630  c8 2e 62 65 73 74 70 6f  73 28 6e 75 6d 73 71 28  |..bestpos(numsq(|
0000a640  71 29 29 3d 71 75 61 64  28 64 65 70 74 68 2b 31  |q))=quad(depth+1|
0000a650  2c 31 2c 6e 75 6d 73 71  28 71 29 29 0d 3c d2 05  |,1,numsq(q)).<..|
0000a660  ed 0d 3c dc 05 cd 0d 3c  e6 21 70 6a 75 6d 70 28  |..<....<.!pjump(|
0000a670  64 65 70 74 68 29 3d b9  3a 70 6d 6f 76 65 28 64  |depth)=.:pmove(d|
0000a680  65 70 74 68 29 3d b9 0d  3c f0 13 6b 69 6e 67 28  |epth)=..<..king(|
0000a690  64 65 70 74 68 2c 31 29  3d a3 0d 3c fa 05 cd 0d  |depth,1)=..<....|
0000a6a0  3d 04 05 cd 0d 3d 0e 05  3a 0d 3d 18 31 e7 20 a4  |=....=..:.=.1. .|
0000a6b0  72 6f 77 28 70 69 65 63  65 29 2b 31 20 3d 20 a4  |row(piece)+1 = .|
0000a6c0  72 6f 77 28 70 69 65 63  65 2b 39 29 20 80 20 64  |row(piece+9) . d|
0000a6d0  32 28 64 65 70 74 68 29  20 8c 0d 3d 22 1f e7 20  |2(depth) ..=".. |
0000a6e0  71 75 61 64 28 64 65 70  74 68 2c 31 2c 70 69 65  |quad(depth,1,pie|
0000a6f0  63 65 2b 39 29 3d 30 20  8c 0d 3d 2c 49 e7 20 71  |ce+9)=0 ..=,I. q|
0000a700  75 61 64 28 64 65 70 74  68 2c 31 2c 70 69 65 63  |uad(depth,1,piec|
0000a710  65 29 3d 31 20 80 20 28  70 69 65 63 65 2b 39 3e  |e)=1 . (piece+9>|
0000a720  35 35 20 80 20 70 69 65  63 65 2b 39 3c 36 34 29  |55 . piece+9<64)|
0000a730  20 8c 20 6b 69 6e 67 28  64 65 70 74 68 2c 31 29  | . king(depth,1)|
0000a740  3d b9 0d 3d 36 13 73 63  6f 72 65 28 64 65 70 74  |=..=6.score(dept|
0000a750  68 29 3d 2e 35 0d 3d 40  26 e7 20 6b 69 6e 67 28  |h)=.5.=@&. king(|
0000a760  64 65 70 74 68 2c 31 29  20 8c 20 73 63 6f 72 65  |depth,1) . score|
0000a770  28 64 65 70 74 68 29 2b  3d 2e 34 0d 3d 4a 31 e7  |(depth)+=.4.=J1.|
0000a780  20 28 64 65 70 74 68 20  80 20 31 29 3d 30 20 8c  | (depth . 1)=0 .|
0000a790  20 73 63 6f 72 65 28 64  65 70 74 68 29 3d 73 63  | score(depth)=sc|
0000a7a0  6f 72 65 28 64 65 70 74  68 29 2a 32 0d 3d 54 1e  |ore(depth)*2.=T.|
0000a7b0  e7 20 64 65 70 74 68 3c  6c 65 76 65 6c 25 20 84  |. depth<level% .|
0000a7c0  20 64 65 70 74 68 3d 31  20 8c 0d 3d 5e 0e e3 20  | depth=1 ..=^.. |
0000a7d0  71 3d 30 20 b8 20 33 31  0d 3d 68 33 71 75 61 64  |q=0 . 31.=h3quad|
0000a7e0  28 64 65 70 74 68 2b 31  2c 31 2c 6e 75 6d 73 71  |(depth+1,1,numsq|
0000a7f0  28 71 29 29 3d 71 75 61  64 28 64 65 70 74 68 2c  |(q))=quad(depth,|
0000a800  31 2c 6e 75 6d 73 71 28  71 29 29 0d 3d 72 05 ed  |1,numsq(q)).=r..|
0000a810  0d 3d 7c 31 71 75 61 64  28 64 65 70 74 68 2b 31  |.=|1quad(depth+1|
0000a820  2c 31 2c 70 69 65 63 65  2b 39 29 3d 71 75 61 64  |,1,piece+9)=quad|
0000a830  28 64 65 70 74 68 2b 31  2c 31 2c 70 69 65 63 65  |(depth+1,1,piece|
0000a840  29 0d 3d 86 1b 71 75 61  64 28 64 65 70 74 68 2b  |).=..quad(depth+|
0000a850  31 2c 31 2c 70 69 65 63  65 29 3d 30 0d 3d 90 30  |1,1,piece)=0.=.0|
0000a860  e7 20 6b 69 6e 67 28 64  65 70 74 68 2c 31 29 20  |. king(depth,1) |
0000a870  8c 20 71 75 61 64 28 64  65 70 74 68 2b 31 2c 31  |. quad(depth+1,1|
0000a880  2c 70 69 65 63 65 2b 39  29 2b 3d 32 0d 3d 9a 36  |,piece+9)+=2.=.6|
0000a890  e7 20 64 65 70 74 68 3c  6c 65 76 65 6c 25 20 8c  |. depth<level% .|
0000a8a0  20 73 63 6f 72 65 28 64  65 70 74 68 29 2d 3d a4  | score(depth)-=.|
0000a8b0  6e 65 78 74 64 65 70 74  68 28 64 65 70 74 68 2b  |nextdepth(depth+|
0000a8c0  31 29 0d 3d a4 05 cd 0d  3d ae 58 e7 20 28 28 73  |1).=....=.X. ((s|
0000a8d0  63 6f 72 65 28 64 65 70  74 68 29 3e 62 73 63 6f  |core(depth)>bsco|
0000a8e0  72 65 28 64 65 70 74 68  29 29 20 84 20 28 73 63  |re(depth)) . (sc|
0000a8f0  6f 72 65 28 64 65 70 74  68 29 3d 62 73 63 6f 72  |ore(depth)=bscor|
0000a900  65 28 64 65 70 74 68 29  20 80 20 b3 28 32 29 3d  |e(depth) . .(2)=|
0000a910  32 29 29 20 80 20 64 65  70 74 68 3d 31 20 8c 0d  |2)) . depth=1 ..|
0000a920  3d b8 1e 62 73 63 6f 72  65 28 64 65 70 74 68 29  |=..bscore(depth)|
0000a930  3d 73 63 6f 72 65 28 64  65 70 74 68 29 0d 3d c2  |=score(depth).=.|
0000a940  0e e3 20 71 3d 30 20 b8  20 33 31 0d 3d cc 2e 62  |.. q=0 . 31.=..b|
0000a950  65 73 74 70 6f 73 28 6e  75 6d 73 71 28 71 29 29  |estpos(numsq(q))|
0000a960  3d 71 75 61 64 28 64 65  70 74 68 2b 31 2c 31 2c  |=quad(depth+1,1,|
0000a970  6e 75 6d 73 71 28 71 29  29 0d 3d d6 05 ed 0d 3d  |numsq(q)).=....=|
0000a980  e0 05 cd 0d 3d ea 21 70  6a 75 6d 70 28 64 65 70  |....=.!pjump(dep|
0000a990  74 68 29 3d b9 3a 70 6d  6f 76 65 28 64 65 70 74  |th)=.:pmove(dept|
0000a9a0  68 29 3d b9 0d 3d f4 13  6b 69 6e 67 28 64 65 70  |h)=..=..king(dep|
0000a9b0  74 68 2c 31 29 3d a3 0d  3d fe 05 cd 0d 3e 08 05  |th,1)=..=....>..|
0000a9c0  cd 0d 3e 12 04 0d 3e 1c  04 0d 3e 26 04 0d 3e 30  |..>...>...>&..>0|
0000a9d0  04 0d 3e 3a 04 0d 3e 44  04 0d 3e 4e 04 0d 3e 58  |..>:..>D..>N..>X|
0000a9e0  04 0d 3e 62 04 0d 3e 6c  05 e1 0d 3e 76 04 0d 3e  |..>b..>l...>v..>|
0000a9f0  80 14 dd a4 63 6f 70 70  28 64 65 70 74 68 2c 70  |....copp(depth,p|
0000aa00  63 29 0d 3e 8a 0a 64 4f  67 6f 3d 30 0d 3e 94 1d  |c).>..dOgo=0.>..|
0000aa10  e7 20 28 64 65 70 74 68  20 80 20 31 29 3d 30 20  |. (depth . 1)=0 |
0000aa20  8c 20 64 4f 67 6f 3d 47  6f 0d 3e 9e 1c e7 20 64  |. dOgo=Go.>... d|
0000aa30  4f 67 6f 3d 30 20 80 20  47 6f 3d 32 20 8c 20 64  |Ogo=0 . Go=2 . d|
0000aa40  4f 67 6f 3d 31 0d 3e a8  1c e7 20 64 4f 67 6f 3d  |Ogo=1.>... dOgo=|
0000aa50  30 20 80 20 47 6f 3d 31  20 8c 20 64 4f 67 6f 3d  |0 . Go=1 . dOgo=|
0000aa60  32 0d 3e b2 4d e7 20 71  75 61 64 28 64 65 70 74  |2.>.M. quad(dept|
0000aa70  68 2c 6c 65 76 28 64 65  70 74 68 29 2c 70 63 29  |h,lev(depth),pc)|
0000aa80  3d 64 4f 67 6f 20 84 20  71 75 61 64 28 64 65 70  |=dOgo . quad(dep|
0000aa90  74 68 2c 6c 65 76 28 64  65 70 74 68 29 2c 70 63  |th,lev(depth),pc|
0000aaa0  29 3d 64 4f 67 6f 2b 32  20 8c 20 3a 3d b9 0d 3e  |)=dOgo+2 . :=..>|
0000aab0  bc 06 3d a3 0d 3e c6 04  0d 3e d0 0c dd f2 63 6f  |..=..>...>....co|
0000aac0  6d 70 67 6f 0d 3e da 0f  62 65 73 74 70 6f 73 28  |mpgo.>..bestpos(|
0000aad0  29 3d 30 0d 3e e4 0c 69  6e 63 6f 6d 70 3d b9 0d  |)=0.>..incomp=..|
0000aae0  3e ee 14 f2 67 72 65 79  6d 65 6e 75 28 30 2c b9  |>...greymenu(0,.|
0000aaf0  2c b9 29 0d 3e f8 28 f2  73 65 74 67 6f 69 63 6f  |,.).>.(.setgoico|
0000ab00  6e 28 b9 29 3a f2 70 6f  6c 6c 3a e7 20 66 69 6e  |n(.):.poll:. fin|
0000ab10  69 73 68 65 64 25 20 f2  65 6e 64 0d 3f 02 12 e7  |ished% .end.?...|
0000ab20  20 69 6e 63 6f 6d 70 3d  a3 20 8c 20 e1 0d 3f 0c  | incomp=. . ..?.|
0000ab30  1f 62 65 73 74 73 63 6f  72 65 3d 2d 35 30 30 3a  |.bestscore=-500:|
0000ab40  62 65 73 74 70 6f 73 32  28 29 3d 30 0d 3f 16 23  |bestpos2()=0.?.#|
0000ab50  e3 71 3d 30 b8 36 33 3a  71 75 61 64 28 31 2c 31  |.q=0.63:quad(1,1|
0000ab60  2c 71 29 3d 73 71 75 61  72 65 28 71 29 3a ed 0d  |,q)=square(q):..|
0000ab70  3f 20 12 64 65 70 74 68  3d 31 3a 68 66 66 3d 2d  |? .depth=1:hff=-|
0000ab80  31 0d 3f 2a 21 73 63 6f  72 65 6e 6f 68 75 66 66  |1.?*!scorenohuff|
0000ab90  3d a4 6e 65 78 74 64 65  70 74 68 28 64 65 70 74  |=.nextdepth(dept|
0000aba0  68 29 0d 3f 34 30 e7 20  69 6e 63 6f 6d 70 3d a3  |h).?40. incomp=.|
0000abb0  20 8c 20 f2 73 65 74 67  6f 74 65 78 74 3a f2 75  | . .setgotext:.u|
0000abc0  6e 67 72 65 79 6d 65 6e  75 28 b9 2c b9 2c b9 29  |ngreymenu(.,.,.)|
0000abd0  3a e1 0d 3f 3e 43 e7 20  73 63 6f 72 65 6e 6f 68  |:..?>C. scorenoh|
0000abe0  75 66 66 3e 2d 32 35 30  20 8c 20 62 65 73 74 73  |uff>-250 . bests|
0000abf0  63 6f 72 65 3d 73 63 6f  72 65 6e 6f 68 75 66 66  |core=scorenohuff|
0000ac00  3a 62 65 73 74 70 6f 73  32 28 29 3d 62 65 73 74  |:bestpos2()=best|
0000ac10  70 6f 73 28 29 0d 3f 48  10 e7 20 70 68 75 66 66  |pos().?H.. phuff|
0000ac20  3c 3e a3 20 8c 0d 3f 52  13 e3 20 68 3d 30 20 b8  |<>. ..?R.. h=0 .|
0000ac30  20 70 68 75 66 66 2d 31  0d 3f 5c 23 e3 71 3d 30  | phuff-1.?\#.q=0|
0000ac40  b8 36 33 3a 71 75 61 64  28 31 2c 31 2c 71 29 3d  |.63:quad(1,1,q)=|
0000ac50  73 71 75 61 72 65 28 71  29 3a ed 0d 3f 66 17 71  |square(q):..?f.q|
0000ac60  75 61 64 28 31 2c 31 2c  68 75 66 66 28 68 29 29  |uad(1,1,huff(h))|
0000ac70  3d 30 0d 3f 70 0b 64 65  70 74 68 3d 31 0d 3f 7a  |=0.?p.depth=1.?z|
0000ac80  21 74 68 69 73 73 63 6f  72 65 3d a4 6e 65 78 74  |!thisscore=.next|
0000ac90  64 65 70 74 68 28 64 65  70 74 68 29 2b 31 0d 3f  |depth(depth)+1.?|
0000aca0  84 1a e7 20 69 6e 63 6f  6d 70 3d a3 20 8c 20 68  |... incomp=. . h|
0000acb0  3d 70 68 75 66 66 2d 31  0d 3f 8e 4a e7 20 74 68  |=phuff-1.?.J. th|
0000acc0  69 73 73 63 6f 72 65 3e  62 65 73 74 73 63 6f 72  |isscore>bestscor|
0000acd0  65 20 8c 20 62 65 73 74  73 63 6f 72 65 3d 74 68  |e . bestscore=th|
0000ace0  69 73 73 63 6f 72 65 3a  62 65 73 74 70 6f 73 32  |isscore:bestpos2|
0000acf0  28 29 3d 62 65 73 74 70  6f 73 28 29 3a 68 66 66  |()=bestpos():hff|
0000ad00  3d 68 0d 3f 98 05 ed 0d  3f a2 05 cd 0d 3f ac 30  |=h.?....?....?.0|
0000ad10  e7 20 69 6e 63 6f 6d 70  3d a3 20 8c 20 f2 73 65  |. incomp=. . .se|
0000ad20  74 67 6f 74 65 78 74 3a  f2 75 6e 67 72 65 79 6d  |tgotext:.ungreym|
0000ad30  65 6e 75 28 b9 2c b9 2c  b9 29 3a e1 0d 3f b6 39  |enu(.,.,.):..?.9|
0000ad40  e7 20 68 66 66 3c 3e 2d  31 20 8c 20 66 6f 75 6e  |. hff<>-1 . foun|
0000ad50  64 3d 68 75 66 66 28 68  66 66 29 3a f2 6c 69 67  |d=huff(hff):.lig|
0000ad60  68 74 6e 69 6e 67 62 6f  6c 74 28 68 75 66 66 28  |htningbolt(huff(|
0000ad70  68 66 66 29 29 0d 3f c0  11 f2 73 65 74 67 6f 69  |hff)).?...setgoi|
0000ad80  63 6f 6e 28 a3 29 0d 3f  ca 21 e7 20 62 65 73 74  |con(.).?.!. best|
0000ad90  73 63 6f 72 65 3c 2d 32  35 30 20 8c 20 f2 63 6f  |score<-250 . .co|
0000ada0  6e 63 65 64 65 3a e1 0d  3f d4 1a f2 70 6f 6c 6c  |ncede:..?...poll|
0000adb0  3a e7 20 66 69 6e 69 73  68 65 64 25 20 f2 65 6e  |:. finished% .en|
0000adc0  64 0d 3f de 04 0d 3f e8  0d f2 73 65 74 62 6f 61  |d.?...?...setboa|
0000add0  72 64 0d 3f f2 16 f2 75  6e 67 72 65 79 6d 65 6e  |rd.?...ungreymen|
0000ade0  75 28 b9 2c b9 2c b9 29  0d 3f fc 19 f2 63 6f 75  |u(.,.,.).?...cou|
0000adf0  6e 74 6d 65 6e 3a f2 63  68 65 63 6b 69 66 77 6f  |ntmen:.checkifwo|
0000ae00  6e 0d 40 06 0c 6e 70 68  75 66 66 3d a3 0d 40 10  |n.@..nphuff=..@.|
0000ae10  0e f2 6a 75 73 74 6d 6f  76 65 64 0d 40 1a 0c 69  |..justmoved.@..i|
0000ae20  6e 63 6f 6d 70 3d a3 0d  40 24 05 e1 0d 40 2e 05  |ncomp=..@$...@..|
0000ae30  20 0d 40 38 0e dd f2 73  65 74 62 6f 61 72 64 0d  | .@8...setboard.|
0000ae40  40 42 0b e3 71 3d 30 b8  36 33 0d 40 4c 2a e7 20  |@B..q=0.63.@L*. |
0000ae50  71 3c 38 20 80 20 62 65  73 74 70 6f 73 32 28 71  |q<8 . bestpos2(q|
0000ae60  29 3d 31 20 8c 20 62 65  73 74 70 6f 73 32 28 71  |)=1 . bestpos2(q|
0000ae70  29 2b 3d 32 0d 40 56 2b  e7 20 71 3e 35 35 20 80  |)+=2.@V+. q>55 .|
0000ae80  20 62 65 73 74 70 6f 73  32 28 71 29 3d 32 20 8c  | bestpos2(q)=2 .|
0000ae90  20 62 65 73 74 70 6f 73  32 28 71 29 2b 3d 32 0d  | bestpos2(q)+=2.|
0000aea0  40 60 4f e7 20 73 71 75  61 72 65 28 71 29 20 3c  |@`O. square(q) <|
0000aeb0  3e 20 62 65 73 74 70 6f  73 32 28 71 29 20 8c 20  |> bestpos2(q) . |
0000aec0  f2 73 65 74 70 69 65 63  65 28 71 2c 62 65 73 74  |.setpiece(q,best|
0000aed0  70 6f 73 32 28 71 29 29  3a 73 71 75 61 72 65 28  |pos2(q)):square(|
0000aee0  71 29 3d 62 65 73 74 70  6f 73 32 28 71 29 0d 40  |q)=bestpos2(q).@|
0000aef0  6a 05 ed 0d 40 74 05 e1  0d 40 7e 05 20 0d 40 88  |j...@t...@~. .@.|
0000af00  0e dd f2 6f 70 65 6e 73  61 76 65 0d 40 92 39 c8  |...opensave.@.9.|
0000af10  99 22 57 69 6d 70 5f 43  72 65 61 74 65 53 75 62  |."Wimp_CreateSub|
0000af20  4d 65 6e 75 22 2c 2c 62  6c 6f 63 6b 25 21 32 30  |Menu",,block%!20|
0000af30  2c 62 6c 6f 63 6b 25 21  32 34 2c 62 6c 6f 63 6b  |,block%!24,block|
0000af40  25 21 32 38 0d 40 9c 31  f2 61 6c 74 65 72 49 63  |%!28.@.1.alterIc|
0000af50  6f 6e 28 73 61 76 65 5f  68 61 6e 64 6c 65 25 2c  |on(save_handle%,|
0000af60  31 30 2c 22 21 22 2b 66  69 6c 65 6e 61 6d 65 24  |10,"!"+filename$|
0000af70  2c 30 2c 31 29 0d 40 a6  4f c8 99 22 57 69 6d 70  |,0,1).@.O.."Wimp|
0000af80  5f 53 65 74 43 61 72 65  74 50 6f 73 69 74 69 6f  |_SetCaretPositio|
0000af90  6e 22 2c 73 61 76 65 5f  68 61 6e 64 6c 65 25 2c  |n",save_handle%,|
0000afa0  31 30 2c 2c 2c 2d 31 2c  a9 28 a4 67 65 74 74 65  |10,,,-1,.(.gette|
0000afb0  78 74 28 73 61 76 65 5f  68 61 6e 64 6c 65 25 2c  |xt(save_handle%,|
0000afc0  31 30 29 29 0d 40 b0 05  e1 0d 40 ba 04 0d 40 c4  |10)).@....@...@.|
0000afd0  11 dd f2 6f 70 65 6e 70  6c 61 79 65 72 73 0d 40  |...openplayers.@|
0000afe0  ce 39 c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |.9.."Wimp_Create|
0000aff0  53 75 62 4d 65 6e 75 22  2c 2c 62 6c 6f 63 6b 25  |SubMenu",,block%|
0000b000  21 32 30 2c 62 6c 6f 63  6b 25 21 32 34 2c 62 6c  |!20,block%!24,bl|
0000b010  6f 63 6b 25 21 32 38 0d  40 d8 29 e7 20 50 6c 79  |ock%!28.@.). Ply|
0000b020  72 31 3d 30 20 8c 20 50  31 24 3d 22 55 73 65 72  |r1=0 . P1$="User|
0000b030  22 20 8b 20 50 31 24 3d  22 41 72 63 68 69 65 22  |" . P1$="Archie"|
0000b040  0d 40 e2 29 e7 20 50 6c  79 72 32 3d 30 20 8c 20  |.@.). Plyr2=0 . |
0000b050  50 32 24 3d 22 55 73 65  72 22 20 8b 20 50 32 24  |P2$="User" . P2$|
0000b060  3d 22 41 72 63 68 69 65  22 0d 40 ec 2d f2 61 6c  |="Archie".@.-.al|
0000b070  74 65 72 49 63 6f 6e 28  70 6c 61 79 65 72 73 5f  |terIcon(players_|
0000b080  68 61 6e 64 6c 65 25 2c  33 2c 22 23 22 2b 50 31  |handle%,3,"#"+P1|
0000b090  24 2c 30 2c 31 29 0d 40  f6 2d f2 61 6c 74 65 72  |$,0,1).@.-.alter|
0000b0a0  49 63 6f 6e 28 70 6c 61  79 65 72 73 5f 68 61 6e  |Icon(players_han|
0000b0b0  64 6c 65 25 2c 37 2c 22  23 22 2b 50 32 24 2c 30  |dle%,7,"#"+P2$,0|
0000b0c0  2c 31 29 0d 41 00 32 f2  61 6c 74 65 72 49 63 6f  |,1).A.2.alterIco|
0000b0d0  6e 28 70 6c 61 79 65 72  73 5f 68 61 6e 64 6c 65  |n(players_handle|
0000b0e0  25 2c 31 38 2c 22 23 22  2b c3 6c 65 76 65 6c 25  |%,18,"#"+.level%|
0000b0f0  2c 30 2c 31 29 0d 41 0a  12 6c 65 76 65 6c 70 25  |,0,1).A..levelp%|
0000b100  3d 6c 65 76 65 6c 25 0d  41 14 10 50 6c 79 72 31  |=level%.A..Plyr1|
0000b110  70 3d 50 6c 79 72 31 0d  41 1e 10 50 6c 79 72 32  |p=Plyr1.A..Plyr2|
0000b120  70 3d 50 6c 79 72 32 0d  41 28 05 e1 0d ff        |p=Plyr2.A(....|
0000b12e