Home » Archimedes archive » Acorn User » AU 1996-05.adf » Regulars » StarInfo/Berry/anymode/!Slicker/!RunImage

StarInfo/Berry/anymode/!Slicker/!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 » Acorn User » AU 1996-05.adf » Regulars
Filename: StarInfo/Berry/anymode/!Slicker/!RunImage
Read OK:
File size: 468A bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >$.!Slicker.!RunImage
   20Version$="1.01AU Mar96":REM (c) G.BERRY
   21REM mods to work in any mode by DCA
   30
   40PROCpreinit
   50PROCsprites
   60PROCwindows
   70PROCmenus
   80PROCiconbar
   90PROCpostinit
  100PROCautoload
  110
  120ON ERROR PROCerror(3)
  130
  140WHILE NOT Quit:PROCpoll:ENDWHILE
  150SYS"Wimp_CloseDown":END
  160
  170DEFPROCpreinit
  180App$="!Slicker":SYS"Wimp_Initialise",200,&4B534154,App$
  190ON ERROR PROCerror(1)
  200DIM B% 500,E% 255
  210DIM Iind% 70,Eind% 80,Sind% 270
  220DIM W44ind% 60,W54ind% 60,W55ind% 60,W65ind% 60
  230DIM Iname% 11,Ename% 11,Sname% 11
  240DIM W44name% 11,W54name% 11,W55name% 11,W65name% 11
  250DIM Imenu% 99,Smenu% 51
  260DIM scale% 16, coltab% 16
  270DIMGW%(4),S%(7),C%(29),C1%(29),Demo% 511:C%()=7:!Demo%=0
  280Quit=0:IconB%=-2:M0%=6192:M1%=6193:Mask%=M1%:Wopen%=0:Shape%=0
  290Opmode%=1:Learn%=0:Move%=0:ExtD%=0:Ptr%=0:Bytemax%=255:A$="":L$=""
  300Son%=1:OSCLI"ChannelVoice 1 WaveSynth-Beep"
  310switched%=FALSE
  320ENDPROC
  330
  340DEFPROCsprites
  350F%=OPENIN"<Obey$Dir>.Sprites"
  360IFF%=0 ERROR 1,"file !Slicker.Sprites not found"
  370size%=EXT#F%+4:CLOSE#F%
  380DIM Sarea% size%:!Sarea%=size%:Sarea%!8=16
  390SYS"OS_SpriteOp",&10A,Sarea%,"<Obey$Dir>.Sprites"
  400FORn%=1TO7:SYS"OS_SpriteOp",24+256,Sarea%,STR$n%TO,,S%(n%):NEXT
  410SYS &2E,&100+24,Sarea%,"screen" TO ,,screen%
  420DIM wicon% 32
  430ENDPROC
  440
  450DEFPROCwindows
  460$Iname%="Info":$Ename%="Edit":$Sname%="Save"
  470$W44name%="w44":$W54name%="w54":$W55name%="w55":$W65name%="w65"
  480SYS"Wimp_OpenTemplate",,"<Obey$Dir>.Templates"
  490SYS"Wimp_LoadTemplate",,B%,Iind%,Iind%+70,-1,Iname%,0
  500B%!368=Sarea%
  510SYS"Wimp_CreateWindow",,B% TO InfoW%
  520SYS"Wimp_LoadTemplate",,B%,W44ind%,W44ind%+60,-1,W44name%,0
  530B%!64=Sarea%
  540SYS"Wimp_CreateWindow",,B% TO GW%(1)
  550SYS"Wimp_LoadTemplate",,B%,W54ind%,W54ind%+60,-1,W54name%,0
  560B%!64=Sarea%
  570SYS"Wimp_CreateWindow",,B% TO GW%(2)
  580SYS"Wimp_LoadTemplate",,B%,W55ind%,W55ind%+60,-1,W55name%,0
  590B%!64=Sarea%
  600SYS"Wimp_CreateWindow",,B% TO GW%(3)
  610SYS"Wimp_LoadTemplate",,B%,W65ind%,W65ind%+60,-1,W65name%,0
  620B%!64=Sarea%
  630SYS"Wimp_CreateWindow",,B% TO GW%(4)
  640SYS"Wimp_LoadTemplate",,B%,Eind%,Eind%+80,-1,Ename%,0
  650B%!64=Sarea%:B%!4=B%!12-250
  660SYS"Wimp_CreateWindow",,B% TO EditW%
  670SYS"Wimp_LoadTemplate",,B%,Sind%,Sind%+270,-1,Sname%,0
  680SYS"Wimp_CreateWindow",,B% TO SaveW%
  690SYS"Wimp_CloseTemplate"
  700ENDPROC
  710
  720DEFPROCmenus
  730RESTORE1100:PROCSetUpMenu(Imenu%):PROCSetUpMenu(Smenu%)
  740ENDPROC
  750
  760DEFPROCiconbar
  770!B%=-1:B%!4=0:B%!8=0:B%!12=68:B%!16=68:B%!20=&3002:$(B%+24)="!Slicker"
  780SYS"Wimp_CreateIcon",,B% TO Ib%
  790ENDPROC
  800
  810DEFPROCpostinit
  820PROCUi(InfoW%,7,LEFT$(Version$,13)):PROCHi(EditW%,14):PROCSi(EditW%,15)
  830FORn%=1TO4:FORi%=11TO12:PROCSi(GW%(n%),i%):NEXT:NEXT
  840PROCDm(Smenu%,0):PROCmode
  850ENDPROC
  860
  870DEFPROCmode
  880ModeOk%=TRUE
  890ENDPROC
  900
  910DEFPROCautoload
  920SYS"OS_GetEnv" TO path$
  930IF RIGHT$(path$,1)<>" " PROCload(MID$(path$,INSTR(path$,""" ")+2))
  940ENDPROC
  950
  960DEFPROCSetUpMenu(menu%)
  970READtitle$,num%:$menu%=title$:width%=(LENtitle$-2)*16
  980menu%!12=&70207:menu%!20=44:menu%!24=0:ptr%=menu%+28
  990FORn%=1 TO num%
 1000 READmflags%,subptr%,item$
 1010 !ptr%=mflags%:ptr%!4=subptr%:ptr%!8=&7000021:$(ptr%+12)=item$
 1020 l%=(LENitem$+1)*16:IFl%>width% width%=l%
 1030 ptr%+=24
 1040NEXT:menu%!16=width%
 1050ENDPROC
 1060
 1070REM---Menu data---
 1080
 1090REM icon bar menu
 1100DATASlicker,3,0,InfoW%,Info,0,-1,Open Edit,&80,-1,Quit
 1110
 1120REM Save menu
 1130DATASlicker,1,&80,SaveW%,Save
 1140
 1150REM---Wimp procs---
 1160
 1170DEFPROCpoll
 1180SYS&400C7,Mask%,B% TO r%
 1190CASEr%OF
 1200 WHEN0:PROCdemo
 1210 WHEN1:PROCredraw
 1220 WHEN2:IFModeOk%SYS"Wimp_OpenWindow",,B%
 1230       IF!B%=GW%(Wopen%)Ox%=B%!4-B%!20:Oy%=B%!16-B%!24
 1240 WHEN3:SYS"Wimp_CloseWindow",,B%:IF!B%=GW%(Wopen%)PROCCloseW(EditW%)
 1250 WHEN6:PROCclick(B%!8,B%!12,B%!16)
 1260 WHEN7:PROCDragFinished
 1270 WHEN8:PROCkey(!B%,B%!24)
 1280 WHEN9:PROCmenuselect(!B%)
 1290 WHEN17,18:PROCreceive(B%!16)
 1300ENDCASE
 1310ENDPROC
 1320
 1330DEFPROCredraw
 1340PROCto_sprite
 1350GCOL 10
 1360RECTANGLE FILL 0,0,Wx%*80,Wy%*80
 1370FOR n%=0 TO 29
 1380 x%=(n% MOD 6)*80
 1390 y%=(Wy%-1-(n% DIV 6))*80
 1400 IF C%(n%)<8:IF C%(n%) SYS &2E,34+512,Sarea%,S%(C%(n%)),x%,y%,3,scale%,0
 1410NEXT
 1420PROCto_screen
 1430SYS&400C8,,B% TO m%
 1440WHILE m%
 1450 SYS "Wimp_PlotIcon",,wicon%
 1460 SYS&400CA,,B% TO m%
 1470ENDWHILE
 1480ENDPROC
 1490
 1500DEF PROCupdate
 1501PROCto_screen
 1510!B%=GW%(Wopen%)
 1530B%!4=ch_x0%+80
 1540B%!8=ch_y0%-80*(Wy%+1)
 1550B%!12=ch_x1%+80
 1560B%!16=ch_y1%-80*(Wy%+1)
 1570SYS "Wimp_UpdateWindow",,B% TO m%
 1580WHILE m%
 1590 SYS "Wimp_PlotIcon",,wicon%
 1600 SYS&400CA,,B% TO m%
 1610ENDWHILE
 1620ENDPROC
 1630:
 1640DEFPROCto_sprite
 1650IF NOT switched% THEN
 1660 SYS&2E,&200+60,Sarea%,screen%,0
 1680 SYS&5A,2
 1681 SYS&5A,1
 1690 switched%=TRUE
 1700ENDIF
 1710ENDPROC
 1720:
 1730DEFPROCto_screen
 1740IF switched% THEN
 1741 SYS &5A,-1 TO ,ch%
 1742 ch_x0%=2*ch%!4-8
 1743 ch_y0%=4*ch%!8-8
 1744 ch_x1%=2*ch%!12+8
 1745 ch_y1%=4*ch%!16+8
 1750 SYS &5A,0
 1760 SYS&2E,&200+60,Sarea%,0,0
 1770 switched%=FALSE
 1771ENDIF
 1780ENDPROC
 1790:
 1800DEFPROCclick(b%,w%,i%)
 1810CASEw%OF
 1820 WHENIconB%:CASEb%OF
 1830             WHEN1:Son%=Son%EOR1
 1840             WHEN2:PROCshowmenu(Imenu%,!B%-64,228)
 1850             WHEN4:IFModeOk%THEN
 1860                    IFWopen%PROCOpenW(GW%(Wopen%))
 1870                    IFOpmode%=1PROCOpenW(EditW%)
 1880                   ELSE:PROCreport("Switch to a sixteen colour mode",16)
 1890                   ENDIF
 1900            ENDCASE
 1910 WHENEditW%:CASEOpmode%OF
 1920             WHEN1:CASEb%OF
 1930                    WHEN4:CASEi%OF
 1940                           WHEN1,2,3,4,5,6,7:PROCshape(i%)
 1950                           WHEN8,9,10,11:PROCopenGW(i%-7)
 1960                           WHEN13:IFWopen%PROCclear
 1970                           WHEN15:PROCtransfer(2)
 1980                          ENDCASE
 1990                   ENDCASE
 2000             WHEN2:CASEb%OF
 2010                    WHEN1:IFi%=13ANDLearn%=0THEN
 2020                           IFPtr%>0ANDPtr%DIV2<Bytemax%PROClearn(1)
 2030                          ENDIF
 2040                    WHEN4:CASEi%OF
 2050                           WHEN8,9,10,11:
 2060                            IFi%-7=Wopen%PROCOpenW(GW%(Wopen%))
 2070                           WHEN13:IFLearn%=0PROClearn(4)
 2080                           WHEN14:PROCtransfer(1)
 2090                           WHEN15:IFLearn%PROClearn(2)
 2100                          ENDCASE
 2110                   ENDCASE
 2120            ENDCASE
 2130 WHENGW%(1),GW%(2),GW%(3),GW%(4):
 2140  B%!20=B%!12
 2150  SYS"Wimp_GetWindowState",,B%+20
 2160  Ox%=B%!24-B%!40
 2170  Oy%=B%!36-B%!44
 2180  CASEOpmode%OF
 2190   WHEN1:CASEb%OF
 2200          WHEN1,4:IFi%=8PROCplot(b%,!B%,B%!4)
 2210          WHEN2:IFi%<8PROCshowmenu(Smenu%,!B%-64,B%!4)
 2220         ENDCASE
 2230   WHEN2:CASEb%OF
 2240          WHEN1,4:CASEi%OF
 2250                   WHEN8:PROCselect(b%,!B%,B%!4)
 2260                   WHEN11:PROCreset
 2270                   WHEN12:PROCreset:Mask%=M0%:Ptr%=0:Opmode%=3
 2280                  ENDCASE
 2290          WHEN2:IFi%<8PROCshowmenu(Smenu%,!B%-64,B%!4)
 2300         ENDCASE
 2310   WHEN3:IFi%=11PROCreset:Mask%=M1%
 2320  ENDCASE
 2330 WHENSaveW%:CASEb%OF
 2340             WHEN1,4:IFi%=2PROCQuickSave
 2350             WHEN16,64:PROCdrag
 2360            ENDCASE
 2370ENDCASE
 2380ENDPROC
 2390
 2400DEFPROCkey(w%,k%)
 2410CASEk%OF
 2420 WHEN13:CASEw%OF
 2430         WHENEditW%:PROCUi(GW%(Wopen%),0,FNGetString(EditW%,12))
 2440                    IFA$=""PROCa(-1)
 2450         WHENSaveW%:PROCQuickSave
 2460         OTHERWISE:SYS"Wimp_ProcessKey",k%
 2470        ENDCASE
 2480 OTHERWISE:SYS"Wimp_ProcessKey",k%
 2490ENDCASE
 2500ENDPROC
 2510
 2520DEFPROCmenuselect(menu%)
 2530CASEMenuopen%OF
 2540 WHENImenu%:CASEmenu%OF
 2550             WHEN1:IFModeOk%THEN
 2560                    PROCOpenW(EditW%):IFWopen%PROCOpenW(GW%(Wopen%))
 2570                   ENDIF
 2580             WHEN2:IFFNok(1) Quit=TRUE
 2590            ENDCASE
 2600 WHENSmenu%:IFmenu%=0PROCQuickSave
 2610ENDCASE
 2620ENDPROC
 2630
 2640DEFPROCshowmenu(menu%,x%,y%)
 2650SYS"Wimp_CreateMenu",,menu%,x%,y%
 2660Menuopen%=menu%
 2670ENDPROC
 2680
 2690DEFPROCreceive(m%)
 2700CASEm%OF
 2710 WHEN0:Quit=TRUE
 2720 WHEN2:PROCDataSave
 2730 WHEN3:IFB%!40=&004IFFNok(2) PROCload(FNstring(B%+44))
 2740 WHEN5:IFB%!40=&004PROCloadack:IFFNok(2) PROCload(FNstring(B%+44))
 2750 WHEN&400C1:PROCmode
 2760ENDCASE
 2770ENDPROC
 2780
 2790DEFPROCloadack
 2800B%!12=B%!8:B%!16=4:!B%=64
 2810SYS"Wimp_SendMessage",17,B%,B%!4
 2820ENDPROC
 2830
 2840DEFPROCreport(err$,bit%)
 2850name$=App$:IF bit% AND 16 name$="Message from "+name$
 2860!E%=255:$(E%+4)=err$+CHR$(0)
 2870SYS"Wimp_ReportError",E%,bit%,name$ TO,Select%
 2880ENDPROC
 2890
 2900DEFPROCerror(bit%)
 2901PROCto_screen
 2910e$=";internal error code "+STR$ERL:IFbit%=3e$+=";press [CANCEL] to quit."
 2920PROCreport(REPORT$+e$,bit%):IFbit%=3:IFSelect%=1ENDPROC
 2930SYS"Wimp_CloseDown":END
 2940ENDPROC
 2950
 2960DEFPROCOpenW(!B%)
 2970SYS"Wimp_GetWindowState",,B%
 2980B%!28=-1:SYS"Wimp_OpenWindow",,B%
 2990ENDPROC
 3000
 3010DEFPROCCloseW(!B%)
 3020SYS"Wimp_CloseWindow",,B%
 3030ENDPROC
 3040
 3050DEFPROCUi(!B%,B%!4,t$)
 3060SYS&400CE,,B%:$(B%!28)=t$:B%!8=0:B%!12=0:SYS&400CD,,B%
 3070ENDPROC
 3080
 3090DEFPROCHi(!B%,B%!4)
 3100B%!8=1<<21:B%!12=1<<21:SYS&400CD,,B%
 3110ENDPROC
 3120
 3130DEFPROCLi(!B%,B%!4)
 3140B%!8=0:B%!12=1<<21:SYS&400CD,,B%
 3150ENDPROC
 3160
 3170DEFPROCAi
 3180!B%=EditW%:B%!4=13
 3190CASELearn%OF
 3200 WHEN0 :B%!8=%11100111000000001001000000000000
 3210 WHEN-1:B%!8=%01111110000000000011000000000000
 3220ENDCASE
 3230B%!12=%11111111000000001111000000000000
 3240SYS"Wimp_SetIconState",,B%
 3250ENDPROC
 3260
 3270DEFPROCSi(!B%,B%!4)
 3280B%!8=1<<22:B%!12=1<<22:SYS&400CD,,B%
 3290ENDPROC
 3300
 3310DEFPROCUsi(!B%,B%!4)
 3320B%!8=0:B%!12=1<<22:SYS&400CD,,B%
 3330ENDPROC
 3340
 3350DEFFNGetString(!B%,B%!4)
 3360SYS"Wimp_GetIconState",,B%
 3370IF ((B%!24) AND &100)=0 THEN=$(B%+28) ELSE=$(B%!28)
 3380
 3390DEFPROCDm(menu%,item%)
 3400menu%!(36+item%*24)=menu%!(36+item%*24)OR(1<<22)
 3410ENDPROC
 3420
 3430DEFPROCEm(menu%,item%)
 3440PROCDm(menu%,item%)
 3450menu%!(36+item%*24)=menu%!(36+item%*24)EOR(1<<22)
 3460ENDPROC
 3470
 3480DEFPROCSetCaret(w%,i%)
 3490SYS"Wimp_SetCaretPosition",w%,i%,,,-1,LENFNGetString(w%,i%)
 3500ENDPROC
 3510
 3520DEFPROCtitle(!B%,t$)
 3530SYS"Wimp_GetWindowInfo",,B%
 3540ptr%=!(B%+76):$ptr%=t$
 3550IF!B%=GW%(Wopen%)SYS"Wimp_ForceRedraw",-1,B%!4,B%!16,B%!12,B%!16+36
 3560ENDPROC
 3570
 3580DEFPROCdrag
 3590!B%=SaveW%:SYS"Wimp_GetWindowState",,B%
 3600ox%=B%!4-B%!20:oy%=B%!16-B%!24:B%!4=0
 3610SYS"Wimp_GetIconState",,B%
 3620B%!4=5:B%!8=ox%+B%!8:B%!12=oy%+B%!12
 3630B%!16=ox%+B%!16:B%!20=oy%+B%!20
 3640B%!24=0:B%!28=0:B%!32=&7FFFFFF:B%!36=&7FFFFFF
 3650SYS"Wimp_DragBox",,B%
 3660ENDPROC
 3670
 3680DEFPROCDragFinished
 3690path$=FNGetString(SaveW%,1):SYS"Wimp_GetPointerInfo",,B%
 3700B%!20=B%!12:B%!24=B%!16:B%!28=!B%:B%!32=B%!4
 3710B%!36=71+ExtD%:!B%=64:B%!12=0:B%!16=1:B%!40=&004
 3720$(B%+44)=FNGetLeaf(path$,0)
 3730SYS"Wimp_SendMessage",17,B%,B%!20,B%!24
 3740ENDPROC
 3750
 3760DEFFNGetLeaf(a$,c%)
 3770WHILE INSTR(a$,"."):a$=MID$(a$,INSTR(a$,".")+1):ENDWHILE
 3780=a$+CHR$c%
 3790
 3800DEFPROCDataSave
 3810PROCUi(SaveW%,1,FNstring(B%+44))
 3820PROCsave:B%!12=B%!8:B%!16=3:!B%=256
 3830SYS"Wimp_SendMessage",17,B%,B%!20,B%!24
 3840SYS"Wimp_CreateMenu",-1
 3850ENDPROC
 3860
 3870DEFFNstring(ptr%)
 3880LOCALa$
 3890WHILE ?ptr%<>0:a$+=CHR$(?ptr%):ptr%+=1:ENDWHILE
 3900=a$
 3910
 3920DEFPROCQuickSave
 3930IF INSTR(FNGetString(SaveW%,1),".") THEN
 3940 PROCsave
 3950ELSE:PROCreport("To save, drag the icon to a directory viewer",16)
 3960ENDIF:SYS"Wimp_CreateMenu",-1
 3970ENDPROC
 3980
 3990REM---Editor procs---
 4000
 4010DEFPROCload(path$)
 4020LOCALt$,w%,d%
 4030PROCUi(SaveW%,1,"Slickfile")
 4040Mask%=M1%:IFLearn%PROClearn(0)
 4050FORn%=1TO4:PROCUi(GW%(n%),0,""):NEXT
 4060F%=OPENIN(path$)
 4070FORn%=0TO29:C%(n%)=BGET#F%:NEXT:w%=BGET#F%
 4080INPUT#F%,t$:ExtD%=BGET#F%:ExtD%=ExtD%*2
 4090IFExtD%THEN
 4100 FORb%=0TOExtD%-1:Demo%?b%=BGET#F%:NEXT
 4110ENDIF
 4120CLOSE#F%:PROCUi(GW%(w%),0,t$)
 4130PROCopenGW(w%):PROCtransfer(2):L$=FNGetLeaf(path$,32):PROCa(0)
 4140ENDPROC
 4150
 4160DEFPROCtransfer(m%)
 4170CASEm%OF
 4180 WHEN1:FORn%=0TO29:IFC1%(n%)=0C1%(n%)=7
 4190       NEXT:C%()=C1%()
 4200       FORn%=11TO12:PROCSi(GW%(Wopen%),n%):NEXT
 4210       PROCDm(Smenu%,0):PROCUi(EditW%,13,"Clear")
 4220       PROCHi(EditW%,14):PROCLi(EditW%,15)
 4230 WHEN2:FORn%=0TO29:IFC%(n%)=7C%(n%)=0
 4240       NEXT:C1%()=C%()
 4250       IFShape%=7PROCexW(250):SYS"Wimp_SetCaretPosition",-1
 4260       IFShape%PROCLi(EditW%,Shape%):Shape%=0
 4270       PROCUsi(GW%(Wopen%),11)
 4280       IFExtD%PROCUsi(GW%(Wopen%),12)ELSEPROCSi(GW%(Wopen%),12)
 4290       PROCEm(Smenu%,0):PROCUi(EditW%,13,"Learn")
 4300       PROCHi(EditW%,15):PROCLi(EditW%,14)
 4310ENDCASE
 4320PROCmoves(0):PROCfr:Opmode%=m%:Ptr%=0
 4330ENDPROC
 4340
 4350DEFPROCopenGW(i%)
 4360PROCUi(EditW%,12,FNGetString(GW%(i%),0))
 4370SYS"Wimp_GetCaretPosition",,B%:IF!B%=EditW%PROCSetCaret(EditW%,12)
 4380Space%=22-(i%*5):IFSpace%=17Space%=16
 4390PROCmeter:IFModeOk%PROCOpenW(GW%(i%))
 4400IFi%=Wopen%ENDPROC
 4410PROCHi(EditW%,i%+7)
 4420IFWopen%THEN
 4430 PROCCloseW(GW%(Wopen%)):PROCLi(EditW%,Wopen%+7)
 4440 FORn%=11TO12:PROCSi(GW%(Wopen%),n%):NEXT
 4450ENDIF
 4460Wopen%=i%
 4470CASEWopen%OF
 4480 WHEN1:Wx%=4:Wy%=4:Yb%=-400:Xr%=400
 4490 WHEN2:Wx%=5:Wy%=4:Yb%=-400:Xr%=480
 4500 WHEN3:Wx%=5:Wy%=5:Yb%=-480:Xr%=480
 4510 WHEN4:Wx%=6:Wy%=5:Yb%=-480:Xr%=560
 4520ENDCASE
 4530wicon%!0=80
 4540wicon%!4=-80*(1+Wy%)
 4550wicon%!8=80*(1+Wx%)
 4560wicon%!12=-80
 4570wicon%!16=%100000010
 4580wicon%!20=screen%
 4590wicon%!24=Sarea%
 4600wicon%!28=0
 4610ENDPROC
 4620
 4630DEFPROCshape(s%)
 4640CASEs%OF
 4650 WHEN7:IFWopen%PROCexW(360)
 4660 OTHERWISE:IFShape%=7PROCexW(250):SYS"Wimp_SetCaretPosition",-1
 4670ENDCASE
 4680IFShape%PROCLi(EditW%,Shape%)
 4690PROCHi(EditW%,s%):Shape%=s%
 4700ENDPROC
 4710
 4720DEFPROCexW(h%)
 4730!B%=EditW%:SYS"Wimp_GetWindowState",,B%
 4740B%!8=B%!16-h%:B%!28=-1:SYS"Wimp_OpenWindow",,B%
 4750ENDPROC
 4760
 4770DEFPROClearn(b%)
 4780ExtD%=0:PROCUsi(EditW%,14)
 4790CASEb%OF
 4800 WHEN0:Learn%=0:!Demo%=0
 4810 WHEN1,4:PROCSi(GW%(Wopen%),12):PROCDm(Smenu%,0)
 4820         PROCSi(EditW%,14):PROCLi(EditW%,15):Learn%=-1
 4830         IFb%=4!Demo%=0:PROCreset:IFA$=""PROCa(-1)
 4840 WHEN2:PROCEm(Smenu%,0):PROCHi(EditW%,15):Learn%=0
 4850       IF!Demo%>0PROCUsi(GW%(Wopen%),12):ExtD%=Move%*2
 4860ENDCASE
 4870PROCAi
 4880ENDPROC
 4890
 4900DEFPROCplot(b%,x%,y%)
 4910LOCALcell%,s%,l%,h%:l%=160:h%=160
 4920x%=(x%-Ox%)DIV80:y%=(Oy%-y%)DIV80:cell%=x%-1+((y%-1)*6)
 4930CASEb%OF
 4940 WHEN1:IFC%(cell%)=7ENDPROC
 4950       IFC%(cell%)>7cell%=C%(cell%)-10:x%=cell%MOD6+1:y%=cell%DIV6+1
 4960       s%=C%(cell%):PROCc(7,cell%)
 4970 WHEN4:IFNOTFNedge(x%,y%,cell%)SOUND1,-15,40,2:ENDPROC
 4980       s%=Shape%:PROCc(s%,cell%)
 4990ENDCASE:x%=x%*80:y%=(y%+1)*80
 5000IFs%=2l%=80
 5010IFs%=3h%=80
 5020IFs%=4l%=80:h%=80
 5030SYS&400D1,GW%(Wopen%),x%,-y%,x%+l%,-y%+h%
 5040PROCmeter:ExtD%=0:IFA$=""PROCa(-1)
 5050ENDPROC
 5060
 5070DEFFNedge(x%,y%,c%)
 5080LOCALok%
 5090CASEShape%OF
 5100 WHEN1,5,6:IFx%>0IFx%<Wx%IFy%>1IFy%<=Wy%ok%=-1
 5110 WHEN2:IFx%>0IFx%<=Wx%IFy%>1IFy%<=Wy%ok%=-1
 5120 WHEN3:IFx%>0IFx%<Wx%IFy%>=1IFy%<=Wy%ok%=-1
 5130 WHEN4:IFx%>0IFx%<=Wx%IFy%>=1IFy%<=Wy%ok%=-1
 5140ENDCASE
 5150IFok%THEN=FNfit(c%) ELSE=0
 5160
 5170DEFFNfit(c%)
 5180LOCALok%
 5190CASEShape%OF
 5200 WHEN1:IFC%(c%)=7IFC%(c%-6)=7IFC%(c%-5)=7IFC%(c%+1)=7ok%=-1
 5210 WHEN2:IFC%(c%)=7IFC%(c%-6)=7ok%=-1
 5220 WHEN3:IFC%(c%)=7IFC%(c%+1)=7ok%=-1
 5230 WHEN4:IFC%(c%)=7ok%=-1
 5240 WHEN5:IFC%(c%)=7IFC%(c%-6)=7IFC%(c%-5)=7ok%=-1
 5250 WHEN6:IFC%(c%)=7IFC%(c%-5)=7IFC%(c%+1)=7ok%=-1
 5260ENDCASE
 5270=ok%
 5280
 5290DEFPROCmeter
 5300LOCALn%,c%,x1%,x2%,x3%
 5310FORn%=0TO29:IFC%(n%)=7c%+=1
 5320NEXT:IFc%=Space%PROCUsi(EditW%,15)ELSEPROCSi(EditW%,15)
 5330FORn%=5TO29STEP6:IFC%(n%)<>7x1%=-1:x2%=-1:x3%=-1
 5340NEXT:FORn%=4TO22STEP6:IFC%(n%)<>7x1%=-1
 5350NEXT:FORn%=24TO28:IFC%(n%)<>7x1%=-1:x2%=-1
 5360NEXT:IFx1%PROCSi(EditW%,8)ELSEPROCUsi(EditW%,8)
 5370IFx2%PROCSi(EditW%,9)ELSEPROCUsi(EditW%,9)
 5380IFx3%PROCSi(EditW%,10)ELSEPROCUsi(EditW%,10)
 5390ENDPROC
 5400
 5410DEFPROCc(s%,c%)
 5420CASEs%OF
 5430 WHEN0:s%=C%(c%):C%(c%)=0:n%=0
 5440 WHEN7:s%=C%(c%):C%(c%)=7:n%=7
 5450 OTHERWISE:C%(c%)=s%:n%=c%+10
 5460ENDCASE
 5470CASEs%OF
 5480 WHEN1:C%(c%-6)=n%:C%(c%-5)=n%:C%(c%+1)=n%
 5490 WHEN2:C%(c%-6)=n%
 5500 WHEN3:C%(c%+1)=n%
 5510 WHEN5:C%(c%-6)=n%:C%(c%-5)=n%
 5520 WHEN6:C%(c%-5)=n%:C%(c%+1)=n%
 5530ENDCASE
 5540ENDPROC
 5550
 5560DEFPROCclear
 5570C%()=7:PROCmeter:PROCfr
 5580FORn%=1TO4:PROCUi(GW%(n%),0,""):NEXT
 5590PROCUi(EditW%,12,""):PROCUi(SaveW%,1,"Slickfile"):L$="":PROCa(0)
 5600ENDPROC
 5610
 5620DEFPROCfr
 5630SYS&400D1,GW%(Wopen%),80,Yb%,Xr%,-80
 5640ENDPROC
 5650
 5660DEFPROCa(data%)
 5670LOCALn%
 5680CASEdata%OF
 5690 WHEN TRUE :A$="*"
 5700 WHEN FALSE:A$=""
 5710ENDCASE
 5720CASEL$OF
 5730 WHEN"":FORn%=1TO4:PROCtitle(GW%(n%),FNdefault(n%)):NEXT
 5740 OTHERWISE:FORn%=1TO4:PROCtitle(GW%(n%),L$+A$):NEXT
 5750ENDCASE
 5760ENDPROC
 5770
 5780DEFFNdefault(n%)
 5790CASEn%OF
 5800 WHEN1:t$="4x4 "
 5810 WHEN2:t$="5x4 "
 5820 WHEN3:t$="5x5 "
 5830 WHEN4:t$="6x5 "
 5840ENDCASE
 5850=t$+A$
 5860
 5870DEFFNok(from%)
 5880LOCALok%,m$:m$="You have unsaved data, "
 5890CASELENA$OF
 5900 WHEN0:ok%=TRUE
 5910 WHEN1:CASEfrom%OF
 5920       WHEN1:PROCreport(m$+"do you still want to Quit?",19)
 5930             IFSelect%=1ok%=TRUE
 5940       WHEN2:PROCreport(m$+"proceed with load?",19)
 5950             IFSelect%=1ok%=TRUE
 5960       ENDCASE
 5970ENDCASE
 5980=ok%
 5990
 6000REM---Game procs---
 6010
 6020DEFPROCselect(b%,x%,y%)
 6030LOCALs$,x1%,y1%
 6040M%=0:x1%=(x%-Ox%)DIV80:y1%=(Oy%-y%)DIV80
 6050cell%=x1%-1+((y1%-1)*6):IFC%(cell%)>7cell%=C%(cell%)-10
 6060Piece%=C%(cell%):x%=cell%MOD6+1:y%=cell%DIV6+1:X%=x%*80:Y%=(y%+1)*80
 6070CASEPiece%OF
 6080 WHEN1:s$="EKLJ"
 6090 WHEN2:IFy1%<y%s$="EFGD"ELSEs$="EFDG"
 6100 WHEN3:IFx1%>x%s$="HAIJ"ELSEs$="AHIJ"
 6110 WHEN4:IFb%=1s$="ABCD"ELSEs$="CDAB"
 6120 WHEN5:s$="EMLN"
 6130 WHEN6:s$="OKPJ"
 6140ENDCASE
 6150Cell%=cell%:PROCseq(s$,cell%,x%,y%)
 6160Ptr%=0:IFLearn%:IFA$=""PROCa(-1)
 6170ENDPROC
 6180
 6190DEFPROCseq(s$,c%,x%,y%)
 6200LOCALs%,n%,m%
 6210FORs%=1TO4:n%=0:IFNOTM%THEN
 6220 CASEMID$(s$,s%,1)OF
 6230  WHEN"A":IFx%>1n%=1:IFx%>2n%=2
 6240          IFn%IFC%(c%-1)=0m%=1:IFn%=2IFC%(c%-2)=0m%=2
 6250          IFm%PROCmove(2,-m%)
 6260  WHEN"B":IFx%<Wx%n%=1:IFx%<Wx%-1n%=2
 6270          IFn%IFC%(c%+1)=0m%=1:IFn%=2IFC%(c%+2)=0m%=2
 6280          IFm%PROCmove(2,m%)
 6290  WHEN"C":IFy%>1n%=1:IFy%>2n%=2
 6300          IFn%IFC%(c%-6)=0m%=1:IFn%=2IFC%(c%-12)=0m%=2
 6310          IFm%PROCmove(1,-m%)
 6320  WHEN"D":IFy%<Wy%n%=1:IFy%<Wy%-1n%=2
 6330          IFn%IFC%(c%+6)=0m%=1:IFn%=2IFC%(c%+12)=0m%=2
 6340          IFm%PROCmove(1,m%)
 6350  WHEN"E":IFx%>1IFC%(c%-1)=0IFC%(c%-7)=0PROCmove(2,-1)
 6360  WHEN"F":IFx%<Wx%IFC%(c%+1)=0IFC%(c%-5)=0PROCmove(2,1)
 6370  WHEN"G":IFy%>2n%=y%DIV2:IFn%IFC%(c%-12)=0m%=1:IFn%=2IFC%(c%-18)=0m%=2
 6380          IFm%PROCmove(1,-m%)
 6390  WHEN"H":IFx%<Wx%-1n%=1:IFx%<Wx%-2n%=2
 6400          IFn%IFC%(c%+2)=0m%=1:IFn%=2IFC%(c%+3)=0m%=2
 6410          IFm%PROCmove(2,m%)
 6420  WHEN"I":IFy%>1IFC%(c%-6)=0IFC%(c%-5)=0PROCmove(1,-1)
 6430  WHEN"J":IFy%<Wy%IFC%(c%+6)=0IFC%(c%+7)=0PROCmove(1,1)
 6440  WHEN"K":IFx%<Wx%-1IFC%(c%+2)=0IFC%(c%-4)=0PROCmove(2,1)
 6450  WHEN"L":IFy%>2IFC%(c%-12)=0IFC%(c%-11)=0PROCmove(1,-1)
 6460  WHEN"M":IFx%<Wx%-1IFC%(c%+1)=0IFC%(c%-4)=0PROCmove(2,1)
 6470  WHEN"N":IFy%<Wy%IFC%(c%+6)=0IFC%(c%+1)=0PROCmove(1,1)
 6480  WHEN"O":IFx%>1IFC%(c%-1)=0IFC%(c%-6)=0PROCmove(2,-1)
 6490  WHEN"P":IFy%>2IFC%(c%-6)=0IFC%(c%-11)=0PROCmove(1,-1)
 6500 ENDCASE
 6510ENDIF:NEXT
 6520ENDPROC
 6530
 6540DEFPROCmove(a%,d%)
 6550LOCALs%,i%
 6560s%=SGN(d%)*10:IF Mask%=M0% s%=s%*2
 6570
 6580Ox%=-80
 6590Oy%=(Wy%+1)*80
 6600
 6610PROCto_sprite
 6620SYS&2E,34+512,Sarea%,S%(Piece%),Ox%+X%,Oy%-Y%,3,scale%,0
 6650CASEa%OF
 6660  WHEN1:i%=Y%+(d%*80-4*SGN(d%))
 6670        FORz%=Y%TOi%STEPs%
 6690         SYS&2E,34+512,Sarea%,S%(Piece%),Ox%+X%,Oy%-z%,3,scale%,0
 6710         WAIT
 6720         PROCupdate
 6730         PROCto_sprite
 6740         SYS&2E,34+512,Sarea%,S%(Piece%),Ox%+X%,Oy%-z%,3,scale%,0
 6760        NEXT
 6780        SYS&2E,34+512,Sarea%,S%(Piece%),Ox%+X%,Oy%-z%,3,scale%,0
 6800        PROCupdate
 6810  WHEN2:i%=X%+(d%*80-4*SGN(d%))
 6820        FORz%=X%TOi%STEPs%
 6840         SYS&2E,34+512,Sarea%,S%(Piece%),Ox%+z%,Oy%-Y%,3,scale%,0
 6860         WAIT
 6870         PROCupdate
 6871         PROCto_sprite
 6890         SYS&2E,34+512,Sarea%,S%(Piece%),Ox%+z%,Oy%-Y%,3,scale%,0
 6910        NEXT
 6930        SYS&2E,34+512,Sarea%,S%(Piece%),Ox%+z%,Oy%-Y%,3,scale%,0
 6950        PROCupdate
 6960ENDCASE
 6970
 6980IFSon%:SOUND1,-10,55,1
 6990IFLearn% Demo%?(Move%*2)=Cell%:Demo%?(Move%*2+1)=(a%*16)+(d%+2)
 7000PROCc(0,Cell%):IFa%=1PROCc(Piece%,Cell%+d%*6)ELSEPROCc(Piece%,Cell%+d%)
 7010M%=TRUE:IFMove%<9999PROCmoves(Move%+1)
 7020ENDPROC
 7030
 7040DEFPROCdemo
 7050Cell%=Demo%?Ptr%:Piece%=C%(Cell%):X%=(Cell%MOD6+1)*80:Y%=(Cell%DIV6+2)*80
 7060PROCmove((Demo%?(Ptr%+1)AND240)DIV16,(Demo%?(Ptr%+1)AND15)-2)
 7070Ptr%+=2:IFPtr%=ExtD%Mask%=M1%:Opmode%=2
 7080ENDPROC
 7090
 7100DEFPROCreset
 7110C%()=C1%():PROCmoves(0):PROCfr:Opmode%=2:Ptr%=0:IFLearn% !Demo%=0
 7120ENDPROC
 7130
 7140DEFPROCmoves(m%)
 7150PROCUi(GW%(Wopen%),10,STR$m%):Move%=m%:IFLearn%=0ENDPROC
 7160IFMove%=Bytemax%THEN
 7170 PROCreport("Can't accept more moves-aborting Learn!",16):PROClearn(2)
 7180ENDIF
 7190ENDPROC
 7200
 7210DEFPROCsave
 7220path$=FNGetString(SaveW%,1)
 7230F%=OPENOUT(path$)
 7240FORn%=0TO29:b%=C1%(n%):IFb%=0b%=7
 7250BPUT#F%,b%:NEXT:BPUT#F%,Wopen%
 7260PRINT#F%,FNGetString(GW%(Wopen%),0)
 7270IFExtD%THEN
 7280 BPUT#F%,ExtD%DIV2:FORb%=0TOExtD%-1:BPUT#F%,Demo%?b%:NEXT
 7290ELSE:BPUT#F%,0
 7300ENDIF
 7310CLOSE#F%
 7320OSCLI("SetType "+path$+" 004")
 7330L$=FNGetLeaf(path$,32):PROCa(0)
 7340ENDPROC
 7350

� >$.!Slicker.!RunImage
)Version$="1.01AU Mar96":� (c) G.BERRY
%� mods to work in any mode by DCA

(�preinit
2�sprites
<�windows
F
�menus
P�iconbar
Z
�postinit
d
�autoload
n
x� � �error(3)
�
�ȕ � Quit:�poll:�
�ș"Wimp_CloseDown":�
�
�
��preinit
�:App$="!Slicker":ș"Wimp_Initialise",200,&4B534154,App$
�� � �error(1)
�� B% 500,E% 255
�!� Iind% 70,Eind% 80,Sind% 270
�1� W44ind% 60,W54ind% 60,W55ind% 60,W65ind% 60
�#� Iname% 11,Ename% 11,Sname% 11
�5� W44name% 11,W54name% 11,W55name% 11,W65name% 11
�� Imenu% 99,Smenu% 51
� scale% 16, coltab% 16
:�GW%(4),S%(7),C%(29),C1%(29),Demo% 511:C%()=7:!Demo%=0
BQuit=0:IconB%=-2:M0%=6192:M1%=6193:Mask%=M1%:Wopen%=0:Shape%=0
"FOpmode%=1:Learn%=0:Move%=0:ExtD%=0:Ptr%=0:Bytemax%=255:A$="":L$=""
,+Son%=1:�"ChannelVoice 1 WaveSynth-Beep"
6switched%=�
@�
J
T
��sprites
^F%=�"<Obey$Dir>.Sprites"
h/�F%=0 � 1,"file !Slicker.Sprites not found"
rsize%=�#F%+4:�#F%
|,� Sarea% size%:!Sarea%=size%:Sarea%!8=16
�4ș"OS_SpriteOp",&10A,Sarea%,"<Obey$Dir>.Sprites"
�8�n%=1�7:ș"OS_SpriteOp",24+256,Sarea%,�n%�,,S%(n%):�
�.ș &2E,&100+24,Sarea%,"screen" � ,,screen%
�� wicon% 32
��
�
�
��windows
�0$Iname%="Info":$Ename%="Edit":$Sname%="Save"
�C$W44name%="w44":$W54name%="w54":$W55name%="w55":$W65name%="w65"
�1ș"Wimp_OpenTemplate",,"<Obey$Dir>.Templates"
�8ș"Wimp_LoadTemplate",,B%,Iind%,Iind%+70,-1,Iname%,0
�B%!368=Sarea%
�&ș"Wimp_CreateWindow",,B% � InfoW%
>ș"Wimp_LoadTemplate",,B%,W44ind%,W44ind%+60,-1,W44name%,0
B%!64=Sarea%
&ș"Wimp_CreateWindow",,B% � GW%(1)
&>ș"Wimp_LoadTemplate",,B%,W54ind%,W54ind%+60,-1,W54name%,0
0B%!64=Sarea%
:&ș"Wimp_CreateWindow",,B% � GW%(2)
D>ș"Wimp_LoadTemplate",,B%,W55ind%,W55ind%+60,-1,W55name%,0
NB%!64=Sarea%
X&ș"Wimp_CreateWindow",,B% � GW%(3)
b>ș"Wimp_LoadTemplate",,B%,W65ind%,W65ind%+60,-1,W65name%,0
lB%!64=Sarea%
v&ș"Wimp_CreateWindow",,B% � GW%(4)
�8ș"Wimp_LoadTemplate",,B%,Eind%,Eind%+80,-1,Ename%,0
�B%!64=Sarea%:B%!4=B%!12-250
�&ș"Wimp_CreateWindow",,B% � EditW%
�9ș"Wimp_LoadTemplate",,B%,Sind%,Sind%+270,-1,Sname%,0
�&ș"Wimp_CreateWindow",,B% � SaveW%
�ș"Wimp_CloseTemplate"
��
�
���menus
�/��DLD:�SetUpMenu(Imenu%):�SetUpMenu(Smenu%)
��
�
�
��iconbar
J!B%=-1:B%!4=0:B%!8=0:B%!12=68:B%!16=68:B%!20=&3002:$(B%+24)="!Slicker"
!ș"Wimp_CreateIcon",,B% � Ib%
�
 
*��postinit
4=�Ui(InfoW%,7,�Version$,13)):�Hi(EditW%,14):�Si(EditW%,15)
>)�n%=1�4:�i%=11�12:�Si(GW%(n%),i%):�:�
H�Dm(Smenu%,0):�mode
R�
\
f
��mode
p
ModeOk%=�
z�
�
���autoload
�ș"OS_GetEnv" � path$
�3� �path$,1)<>" " �load(�path$,�path$,""" ")+2))
��
�
���SetUpMenu(menu%)
�4�title$,num%:$menu%=title$:width%=(�title$-2)*16
�8menu%!12=&70207:menu%!20=44:menu%!24=0:ptr%=menu%+28
��n%=1 � num%
� �mflags%,subptr%,item$
�B !ptr%=mflags%:ptr%!4=subptr%:ptr%!8=&7000021:$(ptr%+12)=item$
�* l%=(�item$+1)*16:�l%>width% width%=l%

 ptr%+=24
�:menu%!16=width%
�
$
.�---Menu data---
8
B� icon bar menu
L7�Slicker,3,0,InfoW%,Info,0,-1,Open Edit,&80,-1,Quit
V
`� Save menu
j�Slicker,1,&80,SaveW%,Save
t
~�---Wimp procs---
�
�
��poll
�ș&400C7,Mask%,B% � r%
�	Ȏr%�
�
 �0:�demo
� �1:�redraw
�' �2:�ModeOk%ș"Wimp_OpenWindow",,B%
�9       �!B%=GW%(Wopen%)Ox%=B%!4-B%!20:Oy%=B%!16-B%!24
�@ �3:ș"Wimp_CloseWindow",,B%:�!B%=GW%(Wopen%)�CloseW(EditW%)
�  �6:�click(B%!8,B%!12,B%!16)
� �7:�DragFinished
� �8:�key(!B%,B%!24)
 �9:�menuselect(!B%)

 �17,18:�receive(B%!16)
�
�
(
2��redraw
<�to_sprite
F� 10
Pȓ Ȑ 0,0,Wx%*80,Wy%*80
Z� n%=0 � 29
d x%=(n% � 6)*80
n y%=(Wy%-1-(n% � 6))*80
xI � C%(n%)<8:� C%(n%) ș &2E,34+512,Sarea%,S%(C%(n%)),x%,y%,3,scale%,0
��
��to_screen
�ș&400C8,,B% � m%
�	ȕ m%
� ș "Wimp_PlotIcon",,wicon%
� ș&400CA,,B% � m%
��
��
�
�
� �update
��to_screen
�!B%=GW%(Wopen%)
�B%!4=ch_x0%+80
B%!8=ch_y0%-80*(Wy%+1)
B%!12=ch_x1%+80
B%!16=ch_y1%-80*(Wy%+1)
"#ș "Wimp_UpdateWindow",,B% � m%
,	ȕ m%
6 ș "Wimp_PlotIcon",,wicon%
@ ș&400CA,,B% � m%
J�
T�
^:
h��to_sprite
r� � switched% �
|# ș&2E,&200+60,Sarea%,screen%,0
� ș&5A,2
� ș&5A,1
� switched%=�
��
��
�:
���to_screen
�� switched% �
� ș &5A,-1 � ,ch%
� ch_x0%=2*ch%!4-8
� ch_y0%=4*ch%!8-8
� ch_x1%=2*ch%!12+8
� ch_y1%=4*ch%!16+8
�
 ș &5A,0
� ș&2E,&200+60,Sarea%,0,0
� switched%=�
��
��
�:
��click(b%,w%,i%)
	Ȏw%�
 �IconB%:Ȏb%�
&             �1:Son%=Son%�1
00             �2:�showmenu(Imenu%,!B%-64,228)
:             �4:�ModeOk%�
D2                    �Wopen%�OpenW(GW%(Wopen%))
N0                    �Opmode%=1�OpenW(EditW%)
XF                   �:�report("Switch to a sixteen colour mode",16)
b                   �
l            �
v �EditW%:ȎOpmode%�
�             �1:Ȏb%�
�                     �4:Ȏi%�
�8                           �1,2,3,4,5,6,7:�shape(i%)
�7                           �8,9,10,11:�openGW(i%-7)
�0                           �13:�Wopen%�clear
�/                           �15:�transfer(2)
�                          �
�                   �
�             �2:Ȏb%�
�+                    �1:�i%=13�Learn%=0�
�?                           �Ptr%>0�Ptr%�2<Bytemax%�learn(1)
�                          �
�                     �4:Ȏi%�
*                           �8,9,10,11:
?                            �i%-7=Wopen%�OpenW(GW%(Wopen%))
5                           �13:�Learn%=0�learn(4)
 /                           �14:�transfer(1)
*3                           �15:�Learn%�learn(2)
4                          �
>                   �
H            �
R" �GW%(1),GW%(2),GW%(3),GW%(4):
\  B%!20=B%!12
f$  ș"Wimp_GetWindowState",,B%+20
p  Ox%=B%!24-B%!40
z  Oy%=B%!36-B%!44
�  ȎOpmode%�
�   �1:Ȏb%�
�*          �1,4:�i%=8�plot(b%,!B%,B%!4)
�3          �2:�i%<8�showmenu(Smenu%,!B%-64,B%!4)
�         �
�   �2:Ȏb%�
�          �1,4:Ȏi%�
�.                   �8:�select(b%,!B%,B%!4)
�!                   �11:�reset
�<                   �12:�reset:Mask%=M0%:Ptr%=0:Opmode%=3
�                  �
�3          �2:�i%<8�showmenu(Smenu%,!B%-64,B%!4)
�         �
	    �3:�i%=11�reset:Mask%=M1%
	  �
	 �SaveW%:Ȏb%�
	$%             �1,4:�i%=2�QuickSave
	.             �16,64:�drag
	8            �
	B�
	L�
	V
	`��key(w%,k%)
	j	Ȏk%�
	t �13:Ȏw%�
	~=         �EditW%:�Ui(GW%(Wopen%),0,�GetString(EditW%,12))
	�$                    �A$=""�a(-1)
	�         �SaveW%:�QuickSave
	�%         :ș"Wimp_ProcessKey",k%
	�
        �
	� :ș"Wimp_ProcessKey",k%
	��
	��
	�
	���menuselect(menu%)
	�ȎMenuopen%�
	� �Imenu%:Ȏmenu%�
	�             �1:�ModeOk%�
A                    �OpenW(EditW%):�Wopen%�OpenW(GW%(Wopen%))

                   �
"             �2:�ok(1) Quit=�
            �
( �Smenu%:�menu%=0�QuickSave
2�
<�
F
P��showmenu(menu%,x%,y%)
Z$ș"Wimp_CreateMenu",,menu%,x%,y%
dMenuopen%=menu%
n�
x
���receive(m%)
�	Ȏm%�
� �0:Quit=�
� �2:�DataSave
�0 �3:�B%!40=&004�ok(2) �load(�string(B%+44))
�9 �5:�B%!40=&004�loadack:�ok(2) �load(�string(B%+44))
� �&400C1:�mode
��
��
�
�
��loadack
�B%!12=B%!8:B%!16=4:!B%=64
�#ș"Wimp_SendMessage",17,B%,B%!4
�

��report(err$,bit%)
"6name$=App$:� bit% � 16 name$="Message from "+name$
,!E%=255:$(E%+4)=err$+�(0)
60ș"Wimp_ReportError",E%,bit%,name$ �,Select%
@�
J
T��error(bit%)
U�to_screen
^Ge$=";internal error code "+Þ:�bit%=3e$+=";press [CANCEL] to quit."
h+�report(�$+e$,bit%):�bit%=3:�Select%=1�
rș"Wimp_CloseDown":�
|�
�
���OpenW(!B%)
�ș"Wimp_GetWindowState",,B%
�$B%!28=-1:ș"Wimp_OpenWindow",,B%
��
�
���CloseW(!B%)
�ș"Wimp_CloseWindow",,B%
��
�
���Ui(!B%,B%!4,t$)
�8ș&400CE,,B%:$(B%!28)=t$:B%!8=0:B%!12=0:ș&400CD,,B%
��

��Hi(!B%,B%!4)
'B%!8=1<<21:B%!12=1<<21:ș&400CD,,B%
&�
0
:��Li(!B%,B%!4)
D#B%!8=0:B%!12=1<<21:ș&400CD,,B%
N�
X
b��Ai
l!B%=EditW%:B%!4=13
v
ȎLearn%�
�/ �0 :B%!8=%11100111000000001001000000000000
�/ �-1:B%!8=%01111110000000000011000000000000
��
�+B%!12=%11111111000000001111000000000000
�ș"Wimp_SetIconState",,B%
��
�
���Si(!B%,B%!4)
�'B%!8=1<<22:B%!12=1<<22:ș&400CD,,B%
��
�
���Usi(!B%,B%!4)
�#B%!8=0:B%!12=1<<22:ș&400CD,,B%

�



ݤGetString(!B%,B%!4)

 ș"Wimp_GetIconState",,B%

*.� ((B%!24) � &100)=0 �=$(B%+28) �=$(B%!28)

4

>��Dm(menu%,item%)

H3menu%!(36+item%*24)=menu%!(36+item%*24)�(1<<22)

R�

\

f��Em(menu%,item%)

p�Dm(menu%,item%)

z3menu%!(36+item%*24)=menu%!(36+item%*24)�(1<<22)

��

�

���SetCaret(w%,i%)

�;ș"Wimp_SetCaretPosition",w%,i%,,,-1,��GetString(w%,i%)

��

�

���title(!B%,t$)

�ș"Wimp_GetWindowInfo",,B%

�ptr%=!(B%+76):$ptr%=t$

�E�!B%=GW%(Wopen%)ș"Wimp_ForceRedraw",-1,B%!4,B%!16,B%!12,B%!16+36

��

�

�
��drag
*!B%=SaveW%:ș"Wimp_GetWindowState",,B%
)ox%=B%!4-B%!20:oy%=B%!16-B%!24:B%!4=0
ș"Wimp_GetIconState",,B%
$(B%!4=5:B%!8=ox%+B%!8:B%!12=oy%+B%!12
.#B%!16=ox%+B%!16:B%!20=oy%+B%!20
81B%!24=0:B%!28=0:B%!32=&7FFFFFF:B%!36=&7FFFFFF
Bș"Wimp_DragBox",,B%
L�
V
`��DragFinished
j:path$=�GetString(SaveW%,1):ș"Wimp_GetPointerInfo",,B%
t0B%!20=B%!12:B%!24=B%!16:B%!28=!B%:B%!32=B%!4
~4B%!36=71+ExtD%:!B%=64:B%!12=0:B%!16=1:B%!40=&004
�$(B%+44)=�GetLeaf(path$,0)
�*ș"Wimp_SendMessage",17,B%,B%!20,B%!24
��
�
�ݤGetLeaf(a$,c%)
�$ȕ �a$,"."):a$=�a$,�a$,".")+1):�
�=a$+�c%
�
���DataSave
� �Ui(SaveW%,1,�string(B%+44))
�$�save:B%!12=B%!8:B%!16=3:!B%=256
�*ș"Wimp_SendMessage",17,B%,B%!20,B%!24
ș"Wimp_CreateMenu",-1

�

ݤstring(ptr%)
(�a$
2&ȕ ?ptr%<>0:a$+=�(?ptr%):ptr%+=1:�
<=a$
F
P��QuickSave
Z"� ��GetString(SaveW%,1),".") �
d
 �save
n@�:�report("To save, drag the icon to a directory viewer",16)
x�:ș"Wimp_CreateMenu",-1
��
�
��---Editor procs---
�
���load(path$)
�
�t$,w%,d%
��Ui(SaveW%,1,"Slickfile")
�Mask%=M1%:�Learn%�learn(0)
��n%=1�4:�Ui(GW%(n%),0,""):�
�F%=�(path$)
�"�n%=0�29:C%(n%)=�#F%:�:w%=�#F%
�$�#F%,t$:ExtD%=�#F%:ExtD%=ExtD%*2
��ExtD%�
" �b%=0�ExtD%-1:Demo%?b%=�#F%:�
�
�#F%:�Ui(GW%(w%),0,t$)
"8�openGW(w%):�transfer(2):L$=�GetLeaf(path$,32):�a(0)
,�
6
@��transfer(m%)
J	Ȏm%�
T$ �1:�n%=0�29:�C1%(n%)=0C1%(n%)=7
^       �:C%()=C1%()
h*       �n%=11�12:�Si(GW%(Wopen%),n%):�
r/       �Dm(Smenu%,0):�Ui(EditW%,13,"Clear")
|(       �Hi(EditW%,14):�Li(EditW%,15)
�" �2:�n%=0�29:�C%(n%)=7C%(n%)=0
�       �:C1%()=C%()
�:       �Shape%=7�exW(250):ș"Wimp_SetCaretPosition",-1
�-       �Shape%�Li(EditW%,Shape%):Shape%=0
�       �Usi(GW%(Wopen%),11)
�9       �ExtD%�Usi(GW%(Wopen%),12)��Si(GW%(Wopen%),12)
�/       �Em(Smenu%,0):�Ui(EditW%,13,"Learn")
�(       �Hi(EditW%,15):�Li(EditW%,14)
��
�#�moves(0):�fr:Opmode%=m%:Ptr%=0
��
�
���openGW(i%)
(�Ui(EditW%,12,�GetString(GW%(i%),0))
Aș"Wimp_GetCaretPosition",,B%:�!B%=EditW%�SetCaret(EditW%,12)
(Space%=22-(i%*5):�Space%=17Space%=16
&"�meter:�ModeOk%�OpenW(GW%(i%))
0�i%=Wopen%�
:�Hi(EditW%,i%+7)
D�Wopen%�
N. �CloseW(GW%(Wopen%)):�Li(EditW%,Wopen%+7)
X$ �n%=11�12:�Si(GW%(Wopen%),n%):�
b�
l
Wopen%=i%
v
ȎWopen%�
�$ �1:Wx%=4:Wy%=4:Yb%=-400:Xr%=400
�$ �2:Wx%=5:Wy%=4:Yb%=-400:Xr%=480
�$ �3:Wx%=5:Wy%=5:Yb%=-480:Xr%=480
�$ �4:Wx%=6:Wy%=5:Yb%=-480:Xr%=560
��
�wicon%!0=80
�wicon%!4=-80*(1+Wy%)
�wicon%!8=80*(1+Wx%)
�wicon%!12=-80
�wicon%!16=%100000010
�wicon%!20=screen%
�wicon%!24=Sarea%
�wicon%!28=0
�

��shape(s%)
 	Ȏs%�
* �7:�Wopen%�exW(360)
46 :�Shape%=7�exW(250):ș"Wimp_SetCaretPosition",-1
>�
H�Shape%�Li(EditW%,Shape%)
R�Hi(EditW%,s%):Shape%=s%
\�
f
p
��exW(h%)
z*!B%=EditW%:ș"Wimp_GetWindowState",,B%
�2B%!8=B%!16-h%:B%!28=-1:ș"Wimp_OpenWindow",,B%
��
�
���learn(b%)
�ExtD%=0:�Usi(EditW%,14)
�	Ȏb%�
� �0:Learn%=0:!Demo%=0
�+ �1,4:�Si(GW%(Wopen%),12):�Dm(Smenu%,0)
�4         �Si(EditW%,14):�Li(EditW%,15):Learn%=-1
�.         �b%=4!Demo%=0:�reset:�A$=""�a(-1)
�- �2:�Em(Smenu%,0):�Hi(EditW%,15):Learn%=0
�6       �!Demo%>0�Usi(GW%(Wopen%),12):ExtD%=Move%*2
��
�Ai
�

$��plot(b%,x%,y%)
.!�cell%,s%,l%,h%:l%=160:h%=160
87x%=(x%-Ox%)�80:y%=(Oy%-y%)�80:cell%=x%-1+((y%-1)*6)
B	Ȏb%�
L �1:�C%(cell%)=7�
VC       �C%(cell%)>7cell%=C%(cell%)-10:x%=cell%�6+1:y%=cell%�6+1
`#       s%=C%(cell%):�c(7,cell%)
j) �4:笤edge(x%,y%,cell%)�1,-15,40,2:�
t!       s%=Shape%:�c(s%,cell%)
~�:x%=x%*80:y%=(y%+1)*80
��s%=2l%=80
��s%=3h%=80
��s%=4l%=80:h%=80
�,ș&400D1,GW%(Wopen%),x%,-y%,x%+l%,-y%+h%
��meter:ExtD%=0:�A$=""�a(-1)
��
�
�ݤedge(x%,y%,c%)
��ok%
�
ȎShape%�
�+ �1,5,6:�x%>0�x%<Wx%�y%>1�y%<=Wy%ok%=-1
�( �2:�x%>0�x%<=Wx%�y%>1�y%<=Wy%ok%=-1
( �3:�x%>0�x%<Wx%�y%>=1�y%<=Wy%ok%=-1

) �4:�x%>0�x%<=Wx%�y%>=1�y%<=Wy%ok%=-1
�
�ok%�=�fit(c%) �=0
(
2
ݤfit(c%)
<�ok%
F
ȎShape%�
P8 �1:�C%(c%)=7�C%(c%-6)=7�C%(c%-5)=7�C%(c%+1)=7ok%=-1
Z" �2:�C%(c%)=7�C%(c%-6)=7ok%=-1
d" �3:�C%(c%)=7�C%(c%+1)=7ok%=-1
n �4:�C%(c%)=7ok%=-1
x- �5:�C%(c%)=7�C%(c%-6)=7�C%(c%-5)=7ok%=-1
�- �6:�C%(c%)=7�C%(c%-5)=7�C%(c%+1)=7ok%=-1
��
�=ok%
�
���meter
��n%,c%,x1%,x2%,x3%
��n%=0�29:�C%(n%)=7c%+=1
�.�:�c%=Space%�Usi(EditW%,15)��Si(EditW%,15)
�-�n%=5�29�6:�C%(n%)<>7x1%=-1:x2%=-1:x3%=-1
�!�:�n%=4�22�6:�C%(n%)<>7x1%=-1
�'�:�n%=24�28:�C%(n%)<>7x1%=-1:x2%=-1
�&�:�x1%�Si(EditW%,8)��Usi(EditW%,8)
�$�x2%�Si(EditW%,9)��Usi(EditW%,9)
&�x3%�Si(EditW%,10)��Usi(EditW%,10)
�

"��c(s%,c%)
,	Ȏs%�
6 �0:s%=C%(c%):C%(c%)=0:n%=0
@ �7:s%=C%(c%):C%(c%)=7:n%=7
J :C%(c%)=s%:n%=c%+10
T�
^	Ȏs%�
h+ �1:C%(c%-6)=n%:C%(c%-5)=n%:C%(c%+1)=n%
r �2:C%(c%-6)=n%
| �3:C%(c%+1)=n%
� �5:C%(c%-6)=n%:C%(c%-5)=n%
� �6:C%(c%-5)=n%:C%(c%+1)=n%
��
��
�
���clear
�C%()=7:�meter:�fr
��n%=1�4:�Ui(GW%(n%),0,""):�
�;�Ui(EditW%,12,""):�Ui(SaveW%,1,"Slickfile"):L$="":�a(0)
��
�
���fr
�'ș&400D1,GW%(Wopen%),80,Yb%,Xr%,-80
�

��a(data%)
&�n%
0Ȏdata%�
: � � :A$="*"
D � �:A$=""
N�
X	ȎL$�
b/ �"":�n%=1�4:�title(GW%(n%),�default(n%)):�
l& :�n%=1�4:�title(GW%(n%),L$+A$):�
v�
��
�
�ݤdefault(n%)
�	Ȏn%�
� �1:t$="4x4 "
� �2:t$="5x4 "
� �3:t$="5x5 "
� �4:t$="6x5 "
��
�
=t$+A$
�
�ݤok(from%)
�(�ok%,m$:m$="You have unsaved data, "

Ȏ�A$�

 �0:ok%=�
 �1:Ȏfrom%�
 9       �1:�report(m$+"do you still want to Quit?",19)
*              �Select%=1ok%=�
41       �2:�report(m$+"proceed with load?",19)
>              �Select%=1ok%=�
H       �
R�
\=ok%
f
p�---Game procs---
z
���select(b%,x%,y%)
��s$,x1%,y1%
�(M%=0:x1%=(x%-Ox%)�80:y1%=(Oy%-y%)�80
�:cell%=x1%-1+((y1%-1)*6):�C%(cell%)>7cell%=C%(cell%)-10
�DPiece%=C%(cell%):x%=cell%�6+1:y%=cell%�6+1:X%=x%*80:Y%=(y%+1)*80
�
ȎPiece%�
� �1:s$="EKLJ"
�" �2:�y1%<y%s$="EFGD"�s$="EFDG"
�" �3:�x1%>x%s$="HAIJ"�s$="AHIJ"
�  �4:�b%=1s$="ABCD"�s$="CDAB"
� �5:s$="EMLN"
� �6:s$="OKPJ"
��
$Cell%=cell%:�seq(s$,cell%,x%,y%)
Ptr%=0:�Learn%:�A$=""�a(-1)
�
$
.��seq(s$,c%,x%,y%)
8
�s%,n%,m%
B�s%=1�4:n%=0:�M%�
L Ȏ�s$,s%,1)�
V  �"A":�x%>1n%=1:�x%>2n%=2
`5          �n%�C%(c%-1)=0m%=1:�n%=2�C%(c%-2)=0m%=2
j          �m%�move(2,-m%)
t$  �"B":�x%<Wx%n%=1:�x%<Wx%-1n%=2
~5          �n%�C%(c%+1)=0m%=1:�n%=2�C%(c%+2)=0m%=2
�          �m%�move(2,m%)
�  �"C":�y%>1n%=1:�y%>2n%=2
�6          �n%�C%(c%-6)=0m%=1:�n%=2�C%(c%-12)=0m%=2
�          �m%�move(1,-m%)
�$  �"D":�y%<Wy%n%=1:�y%<Wy%-1n%=2
�6          �n%�C%(c%+6)=0m%=1:�n%=2�C%(c%+12)=0m%=2
�          �m%�move(1,m%)
�1  �"E":�x%>1�C%(c%-1)=0�C%(c%-7)=0�move(2,-1)
�2  �"F":�x%<Wx%�C%(c%+1)=0�C%(c%-5)=0�move(2,1)
�A  �"G":�y%>2n%=y%�2:�n%�C%(c%-12)=0m%=1:�n%=2�C%(c%-18)=0m%=2
�          �m%�move(1,-m%)
�&  �"H":�x%<Wx%-1n%=1:�x%<Wx%-2n%=2
5          �n%�C%(c%+2)=0m%=1:�n%=2�C%(c%+3)=0m%=2

          �m%�move(2,m%)
1  �"I":�y%>1�C%(c%-6)=0�C%(c%-5)=0�move(1,-1)
2  �"J":�y%<Wy%�C%(c%+6)=0�C%(c%+7)=0�move(1,1)
(4  �"K":�x%<Wx%-1�C%(c%+2)=0�C%(c%-4)=0�move(2,1)
23  �"L":�y%>2�C%(c%-12)=0�C%(c%-11)=0�move(1,-1)
<4  �"M":�x%<Wx%-1�C%(c%+1)=0�C%(c%-4)=0�move(2,1)
F2  �"N":�y%<Wy%�C%(c%+6)=0�C%(c%+1)=0�move(1,1)
P1  �"O":�x%>1�C%(c%-1)=0�C%(c%-6)=0�move(2,-1)
Z2  �"P":�y%>2�C%(c%-6)=0�C%(c%-11)=0�move(1,-1)
d �
n�:�
x�
�
���move(a%,d%)
�
�s%,i%
�#s%=�(d%)*10:� Mask%=M0% s%=s%*2
�
�Ox%=-80
�Oy%=(Wy%+1)*80
�
��to_sprite
�;ș&2E,34+512,Sarea%,S%(Piece%),Ox%+X%,Oy%-Y%,3,scale%,0
�	Ȏa%�
  �1:i%=Y%+(d%*80-4*�(d%))
        �z%=Y%�i%�s%
"D         ș&2E,34+512,Sarea%,S%(Piece%),Ox%+X%,Oy%-z%,3,scale%,0
6         Ȗ
@         �update
J         �to_sprite
TD         ș&2E,34+512,Sarea%,S%(Piece%),Ox%+X%,Oy%-z%,3,scale%,0
h
        �
|C        ș&2E,34+512,Sarea%,S%(Piece%),Ox%+X%,Oy%-z%,3,scale%,0
�        �update
�  �2:i%=X%+(d%*80-4*�(d%))
�        �z%=X%�i%�s%
�D         ș&2E,34+512,Sarea%,S%(Piece%),Ox%+z%,Oy%-Y%,3,scale%,0
�         Ȗ
�         �update
�         �to_sprite
�D         ș&2E,34+512,Sarea%,S%(Piece%),Ox%+z%,Oy%-Y%,3,scale%,0
�
        �
C        ș&2E,34+512,Sarea%,S%(Piece%),Ox%+z%,Oy%-Y%,3,scale%,0
&        �update
0�
:
D�Son%:�1,-10,55,1
NB�Learn% Demo%?(Move%*2)=Cell%:Demo%?(Move%*2+1)=(a%*16)+(d%+2)
X>�c(0,Cell%):�a%=1�c(Piece%,Cell%+d%*6)��c(Piece%,Cell%+d%)
b#M%=�:�Move%<9999�moves(Move%+1)
l�
v
�
��demo
�ICell%=Demo%?Ptr%:Piece%=C%(Cell%):X%=(Cell%�6+1)*80:Y%=(Cell%�6+2)*80
�8�move((Demo%?(Ptr%+1)�240)�16,(Demo%?(Ptr%+1)�15)-2)
�*Ptr%+=2:�Ptr%=ExtD%Mask%=M1%:Opmode%=2
��
�
���reset
�>C%()=C1%():�moves(0):�fr:Opmode%=2:Ptr%=0:�Learn% !Demo%=0
��
�
���moves(m%)
�/�Ui(GW%(Wopen%),10,�m%):Move%=m%:�Learn%=0�
��Move%=Bytemax%�
D �report("Can't accept more moves-aborting Learn!",16):�learn(2)
�
�
 
*
��save
4path$=�GetString(SaveW%,1)
>F%=�(path$)
H!�n%=0�29:b%=C1%(n%):�b%=0b%=7
R�#F%,b%:�:�#F%,Wopen%
\"�#F%,�GetString(GW%(Wopen%),0)
f�ExtD%�
p/ �#F%,ExtD%�2:�b%=0�ExtD%-1:�#F%,Demo%?b%:�
z�:�#F%,0
��
��#F%
��("SetType "+path$+" 004")
�L$=�GetLeaf(path$,32):�a(0)
��
�
�
00000000  0d 00 0a 1b f4 20 3e 24  2e 21 53 6c 69 63 6b 65  |..... >$.!Slicke|
00000010  72 2e 21 52 75 6e 49 6d  61 67 65 0d 00 14 29 56  |r.!RunImage...)V|
00000020  65 72 73 69 6f 6e 24 3d  22 31 2e 30 31 41 55 20  |ersion$="1.01AU |
00000030  4d 61 72 39 36 22 3a f4  20 28 63 29 20 47 2e 42  |Mar96":. (c) G.B|
00000040  45 52 52 59 0d 00 15 25  f4 20 6d 6f 64 73 20 74  |ERRY...%. mods t|
00000050  6f 20 77 6f 72 6b 20 69  6e 20 61 6e 79 20 6d 6f  |o work in any mo|
00000060  64 65 20 62 79 20 44 43  41 0d 00 1e 04 0d 00 28  |de by DCA......(|
00000070  0c f2 70 72 65 69 6e 69  74 0d 00 32 0c f2 73 70  |..preinit..2..sp|
00000080  72 69 74 65 73 0d 00 3c  0c f2 77 69 6e 64 6f 77  |rites..<..window|
00000090  73 0d 00 46 0a f2 6d 65  6e 75 73 0d 00 50 0c f2  |s..F..menus..P..|
000000a0  69 63 6f 6e 62 61 72 0d  00 5a 0d f2 70 6f 73 74  |iconbar..Z..post|
000000b0  69 6e 69 74 0d 00 64 0d  f2 61 75 74 6f 6c 6f 61  |init..d..autoloa|
000000c0  64 0d 00 6e 04 0d 00 78  11 ee 20 85 20 f2 65 72  |d..n...x.. . .er|
000000d0  72 6f 72 28 33 29 0d 00  82 04 0d 00 8c 15 c8 95  |ror(3)..........|
000000e0  20 ac 20 51 75 69 74 3a  f2 70 6f 6c 6c 3a ce 0d  | . Quit:.poll:..|
000000f0  00 96 18 c8 99 22 57 69  6d 70 5f 43 6c 6f 73 65  |....."Wimp_Close|
00000100  44 6f 77 6e 22 3a e0 0d  00 a0 04 0d 00 aa 0d dd  |Down":..........|
00000110  f2 70 72 65 69 6e 69 74  0d 00 b4 3a 41 70 70 24  |.preinit...:App$|
00000120  3d 22 21 53 6c 69 63 6b  65 72 22 3a c8 99 22 57  |="!Slicker":.."W|
00000130  69 6d 70 5f 49 6e 69 74  69 61 6c 69 73 65 22 2c  |imp_Initialise",|
00000140  32 30 30 2c 26 34 42 35  33 34 31 35 34 2c 41 70  |200,&4B534154,Ap|
00000150  70 24 0d 00 be 11 ee 20  85 20 f2 65 72 72 6f 72  |p$..... . .error|
00000160  28 31 29 0d 00 c8 13 de  20 42 25 20 35 30 30 2c  |(1)..... B% 500,|
00000170  45 25 20 32 35 35 0d 00  d2 21 de 20 49 69 6e 64  |E% 255...!. Iind|
00000180  25 20 37 30 2c 45 69 6e  64 25 20 38 30 2c 53 69  |% 70,Eind% 80,Si|
00000190  6e 64 25 20 32 37 30 0d  00 dc 31 de 20 57 34 34  |nd% 270...1. W44|
000001a0  69 6e 64 25 20 36 30 2c  57 35 34 69 6e 64 25 20  |ind% 60,W54ind% |
000001b0  36 30 2c 57 35 35 69 6e  64 25 20 36 30 2c 57 36  |60,W55ind% 60,W6|
000001c0  35 69 6e 64 25 20 36 30  0d 00 e6 23 de 20 49 6e  |5ind% 60...#. In|
000001d0  61 6d 65 25 20 31 31 2c  45 6e 61 6d 65 25 20 31  |ame% 11,Ename% 1|
000001e0  31 2c 53 6e 61 6d 65 25  20 31 31 0d 00 f0 35 de  |1,Sname% 11...5.|
000001f0  20 57 34 34 6e 61 6d 65  25 20 31 31 2c 57 35 34  | W44name% 11,W54|
00000200  6e 61 6d 65 25 20 31 31  2c 57 35 35 6e 61 6d 65  |name% 11,W55name|
00000210  25 20 31 31 2c 57 36 35  6e 61 6d 65 25 20 31 31  |% 11,W65name% 11|
00000220  0d 00 fa 19 de 20 49 6d  65 6e 75 25 20 39 39 2c  |..... Imenu% 99,|
00000230  53 6d 65 6e 75 25 20 35  31 0d 01 04 1b de 20 73  |Smenu% 51..... s|
00000240  63 61 6c 65 25 20 31 36  2c 20 63 6f 6c 74 61 62  |cale% 16, coltab|
00000250  25 20 31 36 0d 01 0e 3a  de 47 57 25 28 34 29 2c  |% 16...:.GW%(4),|
00000260  53 25 28 37 29 2c 43 25  28 32 39 29 2c 43 31 25  |S%(7),C%(29),C1%|
00000270  28 32 39 29 2c 44 65 6d  6f 25 20 35 31 31 3a 43  |(29),Demo% 511:C|
00000280  25 28 29 3d 37 3a 21 44  65 6d 6f 25 3d 30 0d 01  |%()=7:!Demo%=0..|
00000290  18 42 51 75 69 74 3d 30  3a 49 63 6f 6e 42 25 3d  |.BQuit=0:IconB%=|
000002a0  2d 32 3a 4d 30 25 3d 36  31 39 32 3a 4d 31 25 3d  |-2:M0%=6192:M1%=|
000002b0  36 31 39 33 3a 4d 61 73  6b 25 3d 4d 31 25 3a 57  |6193:Mask%=M1%:W|
000002c0  6f 70 65 6e 25 3d 30 3a  53 68 61 70 65 25 3d 30  |open%=0:Shape%=0|
000002d0  0d 01 22 46 4f 70 6d 6f  64 65 25 3d 31 3a 4c 65  |.."FOpmode%=1:Le|
000002e0  61 72 6e 25 3d 30 3a 4d  6f 76 65 25 3d 30 3a 45  |arn%=0:Move%=0:E|
000002f0  78 74 44 25 3d 30 3a 50  74 72 25 3d 30 3a 42 79  |xtD%=0:Ptr%=0:By|
00000300  74 65 6d 61 78 25 3d 32  35 35 3a 41 24 3d 22 22  |temax%=255:A$=""|
00000310  3a 4c 24 3d 22 22 0d 01  2c 2b 53 6f 6e 25 3d 31  |:L$=""..,+Son%=1|
00000320  3a ff 22 43 68 61 6e 6e  65 6c 56 6f 69 63 65 20  |:."ChannelVoice |
00000330  31 20 57 61 76 65 53 79  6e 74 68 2d 42 65 65 70  |1 WaveSynth-Beep|
00000340  22 0d 01 36 0f 73 77 69  74 63 68 65 64 25 3d a3  |"..6.switched%=.|
00000350  0d 01 40 05 e1 0d 01 4a  04 0d 01 54 0d dd f2 73  |..@....J...T...s|
00000360  70 72 69 74 65 73 0d 01  5e 1c 46 25 3d 8e 22 3c  |prites..^.F%=."<|
00000370  4f 62 65 79 24 44 69 72  3e 2e 53 70 72 69 74 65  |Obey$Dir>.Sprite|
00000380  73 22 0d 01 68 2f e7 46  25 3d 30 20 85 20 31 2c  |s"..h/.F%=0 . 1,|
00000390  22 66 69 6c 65 20 21 53  6c 69 63 6b 65 72 2e 53  |"file !Slicker.S|
000003a0  70 72 69 74 65 73 20 6e  6f 74 20 66 6f 75 6e 64  |prites not found|
000003b0  22 0d 01 72 15 73 69 7a  65 25 3d a2 23 46 25 2b  |"..r.size%=.#F%+|
000003c0  34 3a d9 23 46 25 0d 01  7c 2c de 20 53 61 72 65  |4:.#F%..|,. Sare|
000003d0  61 25 20 73 69 7a 65 25  3a 21 53 61 72 65 61 25  |a% size%:!Sarea%|
000003e0  3d 73 69 7a 65 25 3a 53  61 72 65 61 25 21 38 3d  |=size%:Sarea%!8=|
000003f0  31 36 0d 01 86 34 c8 99  22 4f 53 5f 53 70 72 69  |16...4.."OS_Spri|
00000400  74 65 4f 70 22 2c 26 31  30 41 2c 53 61 72 65 61  |teOp",&10A,Sarea|
00000410  25 2c 22 3c 4f 62 65 79  24 44 69 72 3e 2e 53 70  |%,"<Obey$Dir>.Sp|
00000420  72 69 74 65 73 22 0d 01  90 38 e3 6e 25 3d 31 b8  |rites"...8.n%=1.|
00000430  37 3a c8 99 22 4f 53 5f  53 70 72 69 74 65 4f 70  |7:.."OS_SpriteOp|
00000440  22 2c 32 34 2b 32 35 36  2c 53 61 72 65 61 25 2c  |",24+256,Sarea%,|
00000450  c3 6e 25 b8 2c 2c 53 25  28 6e 25 29 3a ed 0d 01  |.n%.,,S%(n%):...|
00000460  9a 2e c8 99 20 26 32 45  2c 26 31 30 30 2b 32 34  |.... &2E,&100+24|
00000470  2c 53 61 72 65 61 25 2c  22 73 63 72 65 65 6e 22  |,Sarea%,"screen"|
00000480  20 b8 20 2c 2c 73 63 72  65 65 6e 25 0d 01 a4 0f  | . ,,screen%....|
00000490  de 20 77 69 63 6f 6e 25  20 33 32 0d 01 ae 05 e1  |. wicon% 32.....|
000004a0  0d 01 b8 04 0d 01 c2 0d  dd f2 77 69 6e 64 6f 77  |..........window|
000004b0  73 0d 01 cc 30 24 49 6e  61 6d 65 25 3d 22 49 6e  |s...0$Iname%="In|
000004c0  66 6f 22 3a 24 45 6e 61  6d 65 25 3d 22 45 64 69  |fo":$Ename%="Edi|
000004d0  74 22 3a 24 53 6e 61 6d  65 25 3d 22 53 61 76 65  |t":$Sname%="Save|
000004e0  22 0d 01 d6 43 24 57 34  34 6e 61 6d 65 25 3d 22  |"...C$W44name%="|
000004f0  77 34 34 22 3a 24 57 35  34 6e 61 6d 65 25 3d 22  |w44":$W54name%="|
00000500  77 35 34 22 3a 24 57 35  35 6e 61 6d 65 25 3d 22  |w54":$W55name%="|
00000510  77 35 35 22 3a 24 57 36  35 6e 61 6d 65 25 3d 22  |w55":$W65name%="|
00000520  77 36 35 22 0d 01 e0 31  c8 99 22 57 69 6d 70 5f  |w65"...1.."Wimp_|
00000530  4f 70 65 6e 54 65 6d 70  6c 61 74 65 22 2c 2c 22  |OpenTemplate",,"|
00000540  3c 4f 62 65 79 24 44 69  72 3e 2e 54 65 6d 70 6c  |<Obey$Dir>.Templ|
00000550  61 74 65 73 22 0d 01 ea  38 c8 99 22 57 69 6d 70  |ates"...8.."Wimp|
00000560  5f 4c 6f 61 64 54 65 6d  70 6c 61 74 65 22 2c 2c  |_LoadTemplate",,|
00000570  42 25 2c 49 69 6e 64 25  2c 49 69 6e 64 25 2b 37  |B%,Iind%,Iind%+7|
00000580  30 2c 2d 31 2c 49 6e 61  6d 65 25 2c 30 0d 01 f4  |0,-1,Iname%,0...|
00000590  11 42 25 21 33 36 38 3d  53 61 72 65 61 25 0d 01  |.B%!368=Sarea%..|
000005a0  fe 26 c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |.&.."Wimp_Create|
000005b0  57 69 6e 64 6f 77 22 2c  2c 42 25 20 b8 20 49 6e  |Window",,B% . In|
000005c0  66 6f 57 25 0d 02 08 3e  c8 99 22 57 69 6d 70 5f  |foW%...>.."Wimp_|
000005d0  4c 6f 61 64 54 65 6d 70  6c 61 74 65 22 2c 2c 42  |LoadTemplate",,B|
000005e0  25 2c 57 34 34 69 6e 64  25 2c 57 34 34 69 6e 64  |%,W44ind%,W44ind|
000005f0  25 2b 36 30 2c 2d 31 2c  57 34 34 6e 61 6d 65 25  |%+60,-1,W44name%|
00000600  2c 30 0d 02 12 10 42 25  21 36 34 3d 53 61 72 65  |,0....B%!64=Sare|
00000610  61 25 0d 02 1c 26 c8 99  22 57 69 6d 70 5f 43 72  |a%...&.."Wimp_Cr|
00000620  65 61 74 65 57 69 6e 64  6f 77 22 2c 2c 42 25 20  |eateWindow",,B% |
00000630  b8 20 47 57 25 28 31 29  0d 02 26 3e c8 99 22 57  |. GW%(1)..&>.."W|
00000640  69 6d 70 5f 4c 6f 61 64  54 65 6d 70 6c 61 74 65  |imp_LoadTemplate|
00000650  22 2c 2c 42 25 2c 57 35  34 69 6e 64 25 2c 57 35  |",,B%,W54ind%,W5|
00000660  34 69 6e 64 25 2b 36 30  2c 2d 31 2c 57 35 34 6e  |4ind%+60,-1,W54n|
00000670  61 6d 65 25 2c 30 0d 02  30 10 42 25 21 36 34 3d  |ame%,0..0.B%!64=|
00000680  53 61 72 65 61 25 0d 02  3a 26 c8 99 22 57 69 6d  |Sarea%..:&.."Wim|
00000690  70 5f 43 72 65 61 74 65  57 69 6e 64 6f 77 22 2c  |p_CreateWindow",|
000006a0  2c 42 25 20 b8 20 47 57  25 28 32 29 0d 02 44 3e  |,B% . GW%(2)..D>|
000006b0  c8 99 22 57 69 6d 70 5f  4c 6f 61 64 54 65 6d 70  |.."Wimp_LoadTemp|
000006c0  6c 61 74 65 22 2c 2c 42  25 2c 57 35 35 69 6e 64  |late",,B%,W55ind|
000006d0  25 2c 57 35 35 69 6e 64  25 2b 36 30 2c 2d 31 2c  |%,W55ind%+60,-1,|
000006e0  57 35 35 6e 61 6d 65 25  2c 30 0d 02 4e 10 42 25  |W55name%,0..N.B%|
000006f0  21 36 34 3d 53 61 72 65  61 25 0d 02 58 26 c8 99  |!64=Sarea%..X&..|
00000700  22 57 69 6d 70 5f 43 72  65 61 74 65 57 69 6e 64  |"Wimp_CreateWind|
00000710  6f 77 22 2c 2c 42 25 20  b8 20 47 57 25 28 33 29  |ow",,B% . GW%(3)|
00000720  0d 02 62 3e c8 99 22 57  69 6d 70 5f 4c 6f 61 64  |..b>.."Wimp_Load|
00000730  54 65 6d 70 6c 61 74 65  22 2c 2c 42 25 2c 57 36  |Template",,B%,W6|
00000740  35 69 6e 64 25 2c 57 36  35 69 6e 64 25 2b 36 30  |5ind%,W65ind%+60|
00000750  2c 2d 31 2c 57 36 35 6e  61 6d 65 25 2c 30 0d 02  |,-1,W65name%,0..|
00000760  6c 10 42 25 21 36 34 3d  53 61 72 65 61 25 0d 02  |l.B%!64=Sarea%..|
00000770  76 26 c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |v&.."Wimp_Create|
00000780  57 69 6e 64 6f 77 22 2c  2c 42 25 20 b8 20 47 57  |Window",,B% . GW|
00000790  25 28 34 29 0d 02 80 38  c8 99 22 57 69 6d 70 5f  |%(4)...8.."Wimp_|
000007a0  4c 6f 61 64 54 65 6d 70  6c 61 74 65 22 2c 2c 42  |LoadTemplate",,B|
000007b0  25 2c 45 69 6e 64 25 2c  45 69 6e 64 25 2b 38 30  |%,Eind%,Eind%+80|
000007c0  2c 2d 31 2c 45 6e 61 6d  65 25 2c 30 0d 02 8a 1f  |,-1,Ename%,0....|
000007d0  42 25 21 36 34 3d 53 61  72 65 61 25 3a 42 25 21  |B%!64=Sarea%:B%!|
000007e0  34 3d 42 25 21 31 32 2d  32 35 30 0d 02 94 26 c8  |4=B%!12-250...&.|
000007f0  99 22 57 69 6d 70 5f 43  72 65 61 74 65 57 69 6e  |."Wimp_CreateWin|
00000800  64 6f 77 22 2c 2c 42 25  20 b8 20 45 64 69 74 57  |dow",,B% . EditW|
00000810  25 0d 02 9e 39 c8 99 22  57 69 6d 70 5f 4c 6f 61  |%...9.."Wimp_Loa|
00000820  64 54 65 6d 70 6c 61 74  65 22 2c 2c 42 25 2c 53  |dTemplate",,B%,S|
00000830  69 6e 64 25 2c 53 69 6e  64 25 2b 32 37 30 2c 2d  |ind%,Sind%+270,-|
00000840  31 2c 53 6e 61 6d 65 25  2c 30 0d 02 a8 26 c8 99  |1,Sname%,0...&..|
00000850  22 57 69 6d 70 5f 43 72  65 61 74 65 57 69 6e 64  |"Wimp_CreateWind|
00000860  6f 77 22 2c 2c 42 25 20  b8 20 53 61 76 65 57 25  |ow",,B% . SaveW%|
00000870  0d 02 b2 1a c8 99 22 57  69 6d 70 5f 43 6c 6f 73  |......"Wimp_Clos|
00000880  65 54 65 6d 70 6c 61 74  65 22 0d 02 bc 05 e1 0d  |eTemplate"......|
00000890  02 c6 04 0d 02 d0 0b dd  f2 6d 65 6e 75 73 0d 02  |.........menus..|
000008a0  da 2f f7 8d 44 4c 44 3a  f2 53 65 74 55 70 4d 65  |./..DLD:.SetUpMe|
000008b0  6e 75 28 49 6d 65 6e 75  25 29 3a f2 53 65 74 55  |nu(Imenu%):.SetU|
000008c0  70 4d 65 6e 75 28 53 6d  65 6e 75 25 29 0d 02 e4  |pMenu(Smenu%)...|
000008d0  05 e1 0d 02 ee 04 0d 02  f8 0d dd f2 69 63 6f 6e  |............icon|
000008e0  62 61 72 0d 03 02 4a 21  42 25 3d 2d 31 3a 42 25  |bar...J!B%=-1:B%|
000008f0  21 34 3d 30 3a 42 25 21  38 3d 30 3a 42 25 21 31  |!4=0:B%!8=0:B%!1|
00000900  32 3d 36 38 3a 42 25 21  31 36 3d 36 38 3a 42 25  |2=68:B%!16=68:B%|
00000910  21 32 30 3d 26 33 30 30  32 3a 24 28 42 25 2b 32  |!20=&3002:$(B%+2|
00000920  34 29 3d 22 21 53 6c 69  63 6b 65 72 22 0d 03 0c  |4)="!Slicker"...|
00000930  21 c8 99 22 57 69 6d 70  5f 43 72 65 61 74 65 49  |!.."Wimp_CreateI|
00000940  63 6f 6e 22 2c 2c 42 25  20 b8 20 49 62 25 0d 03  |con",,B% . Ib%..|
00000950  16 05 e1 0d 03 20 04 0d  03 2a 0e dd f2 70 6f 73  |..... ...*...pos|
00000960  74 69 6e 69 74 0d 03 34  3d f2 55 69 28 49 6e 66  |tinit..4=.Ui(Inf|
00000970  6f 57 25 2c 37 2c c0 56  65 72 73 69 6f 6e 24 2c  |oW%,7,.Version$,|
00000980  31 33 29 29 3a f2 48 69  28 45 64 69 74 57 25 2c  |13)):.Hi(EditW%,|
00000990  31 34 29 3a f2 53 69 28  45 64 69 74 57 25 2c 31  |14):.Si(EditW%,1|
000009a0  35 29 0d 03 3e 29 e3 6e  25 3d 31 b8 34 3a e3 69  |5)..>).n%=1.4:.i|
000009b0  25 3d 31 31 b8 31 32 3a  f2 53 69 28 47 57 25 28  |%=11.12:.Si(GW%(|
000009c0  6e 25 29 2c 69 25 29 3a  ed 3a ed 0d 03 48 17 f2  |n%),i%):.:...H..|
000009d0  44 6d 28 53 6d 65 6e 75  25 2c 30 29 3a f2 6d 6f  |Dm(Smenu%,0):.mo|
000009e0  64 65 0d 03 52 05 e1 0d  03 5c 04 0d 03 66 0a dd  |de..R....\...f..|
000009f0  f2 6d 6f 64 65 0d 03 70  0d 4d 6f 64 65 4f 6b 25  |.mode..p.ModeOk%|
00000a00  3d b9 0d 03 7a 05 e1 0d  03 84 04 0d 03 8e 0e dd  |=...z...........|
00000a10  f2 61 75 74 6f 6c 6f 61  64 0d 03 98 19 c8 99 22  |.autoload......"|
00000a20  4f 53 5f 47 65 74 45 6e  76 22 20 b8 20 70 61 74  |OS_GetEnv" . pat|
00000a30  68 24 0d 03 a2 33 e7 20  c2 70 61 74 68 24 2c 31  |h$...3. .path$,1|
00000a40  29 3c 3e 22 20 22 20 f2  6c 6f 61 64 28 c1 70 61  |)<>" " .load(.pa|
00000a50  74 68 24 2c a7 70 61 74  68 24 2c 22 22 22 20 22  |th$,.path$,""" "|
00000a60  29 2b 32 29 29 0d 03 ac  05 e1 0d 03 b6 04 0d 03  |)+2))...........|
00000a70  c0 16 dd f2 53 65 74 55  70 4d 65 6e 75 28 6d 65  |....SetUpMenu(me|
00000a80  6e 75 25 29 0d 03 ca 34  f3 74 69 74 6c 65 24 2c  |nu%)...4.title$,|
00000a90  6e 75 6d 25 3a 24 6d 65  6e 75 25 3d 74 69 74 6c  |num%:$menu%=titl|
00000aa0  65 24 3a 77 69 64 74 68  25 3d 28 a9 74 69 74 6c  |e$:width%=(.titl|
00000ab0  65 24 2d 32 29 2a 31 36  0d 03 d4 38 6d 65 6e 75  |e$-2)*16...8menu|
00000ac0  25 21 31 32 3d 26 37 30  32 30 37 3a 6d 65 6e 75  |%!12=&70207:menu|
00000ad0  25 21 32 30 3d 34 34 3a  6d 65 6e 75 25 21 32 34  |%!20=44:menu%!24|
00000ae0  3d 30 3a 70 74 72 25 3d  6d 65 6e 75 25 2b 32 38  |=0:ptr%=menu%+28|
00000af0  0d 03 de 10 e3 6e 25 3d  31 20 b8 20 6e 75 6d 25  |.....n%=1 . num%|
00000b00  0d 03 e8 1b 20 f3 6d 66  6c 61 67 73 25 2c 73 75  |.... .mflags%,su|
00000b10  62 70 74 72 25 2c 69 74  65 6d 24 0d 03 f2 42 20  |bptr%,item$...B |
00000b20  21 70 74 72 25 3d 6d 66  6c 61 67 73 25 3a 70 74  |!ptr%=mflags%:pt|
00000b30  72 25 21 34 3d 73 75 62  70 74 72 25 3a 70 74 72  |r%!4=subptr%:ptr|
00000b40  25 21 38 3d 26 37 30 30  30 30 32 31 3a 24 28 70  |%!8=&7000021:$(p|
00000b50  74 72 25 2b 31 32 29 3d  69 74 65 6d 24 0d 03 fc  |tr%+12)=item$...|
00000b60  2a 20 6c 25 3d 28 a9 69  74 65 6d 24 2b 31 29 2a  |* l%=(.item$+1)*|
00000b70  31 36 3a e7 6c 25 3e 77  69 64 74 68 25 20 77 69  |16:.l%>width% wi|
00000b80  64 74 68 25 3d 6c 25 0d  04 06 0d 20 70 74 72 25  |dth%=l%.... ptr%|
00000b90  2b 3d 32 34 0d 04 10 15  ed 3a 6d 65 6e 75 25 21  |+=24.....:menu%!|
00000ba0  31 36 3d 77 69 64 74 68  25 0d 04 1a 05 e1 0d 04  |16=width%.......|
00000bb0  24 04 0d 04 2e 14 f4 2d  2d 2d 4d 65 6e 75 20 64  |$......---Menu d|
00000bc0  61 74 61 2d 2d 2d 0d 04  38 04 0d 04 42 13 f4 20  |ata---..8...B.. |
00000bd0  69 63 6f 6e 20 62 61 72  20 6d 65 6e 75 0d 04 4c  |icon bar menu..L|
00000be0  37 dc 53 6c 69 63 6b 65  72 2c 33 2c 30 2c 49 6e  |7.Slicker,3,0,In|
00000bf0  66 6f 57 25 2c 49 6e 66  6f 2c 30 2c 2d 31 2c 4f  |foW%,Info,0,-1,O|
00000c00  70 65 6e 20 45 64 69 74  2c 26 38 30 2c 2d 31 2c  |pen Edit,&80,-1,|
00000c10  51 75 69 74 0d 04 56 04  0d 04 60 0f f4 20 53 61  |Quit..V...`.. Sa|
00000c20  76 65 20 6d 65 6e 75 0d  04 6a 1e dc 53 6c 69 63  |ve menu..j..Slic|
00000c30  6b 65 72 2c 31 2c 26 38  30 2c 53 61 76 65 57 25  |ker,1,&80,SaveW%|
00000c40  2c 53 61 76 65 0d 04 74  04 0d 04 7e 15 f4 2d 2d  |,Save..t...~..--|
00000c50  2d 57 69 6d 70 20 70 72  6f 63 73 2d 2d 2d 0d 04  |-Wimp procs---..|
00000c60  88 04 0d 04 92 0a dd f2  70 6f 6c 6c 0d 04 9c 1a  |........poll....|
00000c70  c8 99 26 34 30 30 43 37  2c 4d 61 73 6b 25 2c 42  |..&400C7,Mask%,B|
00000c80  25 20 b8 20 72 25 0d 04  a6 09 c8 8e 72 25 ca 0d  |% . r%......r%..|
00000c90  04 b0 0d 20 c9 30 3a f2  64 65 6d 6f 0d 04 ba 0f  |... .0:.demo....|
00000ca0  20 c9 31 3a f2 72 65 64  72 61 77 0d 04 c4 27 20  | .1:.redraw...' |
00000cb0  c9 32 3a e7 4d 6f 64 65  4f 6b 25 c8 99 22 57 69  |.2:.ModeOk%.."Wi|
00000cc0  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
00000cd0  42 25 0d 04 ce 39 20 20  20 20 20 20 20 e7 21 42  |B%...9       .!B|
00000ce0  25 3d 47 57 25 28 57 6f  70 65 6e 25 29 4f 78 25  |%=GW%(Wopen%)Ox%|
00000cf0  3d 42 25 21 34 2d 42 25  21 32 30 3a 4f 79 25 3d  |=B%!4-B%!20:Oy%=|
00000d00  42 25 21 31 36 2d 42 25  21 32 34 0d 04 d8 40 20  |B%!16-B%!24...@ |
00000d10  c9 33 3a c8 99 22 57 69  6d 70 5f 43 6c 6f 73 65  |.3:.."Wimp_Close|
00000d20  57 69 6e 64 6f 77 22 2c  2c 42 25 3a e7 21 42 25  |Window",,B%:.!B%|
00000d30  3d 47 57 25 28 57 6f 70  65 6e 25 29 f2 43 6c 6f  |=GW%(Wopen%).Clo|
00000d40  73 65 57 28 45 64 69 74  57 25 29 0d 04 e2 20 20  |seW(EditW%)...  |
00000d50  c9 36 3a f2 63 6c 69 63  6b 28 42 25 21 38 2c 42  |.6:.click(B%!8,B|
00000d60  25 21 31 32 2c 42 25 21  31 36 29 0d 04 ec 15 20  |%!12,B%!16).... |
00000d70  c9 37 3a f2 44 72 61 67  46 69 6e 69 73 68 65 64  |.7:.DragFinished|
00000d80  0d 04 f6 17 20 c9 38 3a  f2 6b 65 79 28 21 42 25  |.... .8:.key(!B%|
00000d90  2c 42 25 21 32 34 29 0d  05 00 18 20 c9 39 3a f2  |,B%!24).... .9:.|
00000da0  6d 65 6e 75 73 65 6c 65  63 74 28 21 42 25 29 0d  |menuselect(!B%).|
00000db0  05 0a 1b 20 c9 31 37 2c  31 38 3a f2 72 65 63 65  |... .17,18:.rece|
00000dc0  69 76 65 28 42 25 21 31  36 29 0d 05 14 05 cb 0d  |ive(B%!16)......|
00000dd0  05 1e 05 e1 0d 05 28 04  0d 05 32 0c dd f2 72 65  |......(...2...re|
00000de0  64 72 61 77 0d 05 3c 0e  f2 74 6f 5f 73 70 72 69  |draw..<..to_spri|
00000df0  74 65 0d 05 46 08 e6 20  31 30 0d 05 50 1b c8 93  |te..F.. 10..P...|
00000e00  20 c8 90 20 30 2c 30 2c  57 78 25 2a 38 30 2c 57  | .. 0,0,Wx%*80,W|
00000e10  79 25 2a 38 30 0d 05 5a  0f e3 20 6e 25 3d 30 20  |y%*80..Z.. n%=0 |
00000e20  b8 20 32 39 0d 05 64 13  20 78 25 3d 28 6e 25 20  |. 29..d. x%=(n% |
00000e30  83 20 36 29 2a 38 30 0d  05 6e 1b 20 79 25 3d 28  |. 6)*80..n. y%=(|
00000e40  57 79 25 2d 31 2d 28 6e  25 20 81 20 36 29 29 2a  |Wy%-1-(n% . 6))*|
00000e50  38 30 0d 05 78 49 20 e7  20 43 25 28 6e 25 29 3c  |80..xI . C%(n%)<|
00000e60  38 3a e7 20 43 25 28 6e  25 29 20 c8 99 20 26 32  |8:. C%(n%) .. &2|
00000e70  45 2c 33 34 2b 35 31 32  2c 53 61 72 65 61 25 2c  |E,34+512,Sarea%,|
00000e80  53 25 28 43 25 28 6e 25  29 29 2c 78 25 2c 79 25  |S%(C%(n%)),x%,y%|
00000e90  2c 33 2c 73 63 61 6c 65  25 2c 30 0d 05 82 05 ed  |,3,scale%,0.....|
00000ea0  0d 05 8c 0e f2 74 6f 5f  73 63 72 65 65 6e 0d 05  |.....to_screen..|
00000eb0  96 15 c8 99 26 34 30 30  43 38 2c 2c 42 25 20 b8  |....&400C8,,B% .|
00000ec0  20 6d 25 0d 05 a0 09 c8  95 20 6d 25 0d 05 aa 1f  | m%...... m%....|
00000ed0  20 c8 99 20 22 57 69 6d  70 5f 50 6c 6f 74 49 63  | .. "Wimp_PlotIc|
00000ee0  6f 6e 22 2c 2c 77 69 63  6f 6e 25 0d 05 b4 16 20  |on",,wicon%.... |
00000ef0  c8 99 26 34 30 30 43 41  2c 2c 42 25 20 b8 20 6d  |..&400CA,,B% . m|
00000f00  25 0d 05 be 05 ce 0d 05  c8 05 e1 0d 05 d2 04 0d  |%...............|
00000f10  05 dc 0d dd 20 f2 75 70  64 61 74 65 0d 05 dd 0e  |.... .update....|
00000f20  f2 74 6f 5f 73 63 72 65  65 6e 0d 05 e6 13 21 42  |.to_screen....!B|
00000f30  25 3d 47 57 25 28 57 6f  70 65 6e 25 29 0d 05 fa  |%=GW%(Wopen%)...|
00000f40  12 42 25 21 34 3d 63 68  5f 78 30 25 2b 38 30 0d  |.B%!4=ch_x0%+80.|
00000f50  06 04 1a 42 25 21 38 3d  63 68 5f 79 30 25 2d 38  |...B%!8=ch_y0%-8|
00000f60  30 2a 28 57 79 25 2b 31  29 0d 06 0e 13 42 25 21  |0*(Wy%+1)....B%!|
00000f70  31 32 3d 63 68 5f 78 31  25 2b 38 30 0d 06 18 1b  |12=ch_x1%+80....|
00000f80  42 25 21 31 36 3d 63 68  5f 79 31 25 2d 38 30 2a  |B%!16=ch_y1%-80*|
00000f90  28 57 79 25 2b 31 29 0d  06 22 23 c8 99 20 22 57  |(Wy%+1).."#.. "W|
00000fa0  69 6d 70 5f 55 70 64 61  74 65 57 69 6e 64 6f 77  |imp_UpdateWindow|
00000fb0  22 2c 2c 42 25 20 b8 20  6d 25 0d 06 2c 09 c8 95  |",,B% . m%..,...|
00000fc0  20 6d 25 0d 06 36 1f 20  c8 99 20 22 57 69 6d 70  | m%..6. .. "Wimp|
00000fd0  5f 50 6c 6f 74 49 63 6f  6e 22 2c 2c 77 69 63 6f  |_PlotIcon",,wico|
00000fe0  6e 25 0d 06 40 16 20 c8  99 26 34 30 30 43 41 2c  |n%..@. ..&400CA,|
00000ff0  2c 42 25 20 b8 20 6d 25  0d 06 4a 05 ce 0d 06 54  |,B% . m%..J....T|
00001000  05 e1 0d 06 5e 05 3a 0d  06 68 0f dd f2 74 6f 5f  |....^.:..h...to_|
00001010  73 70 72 69 74 65 0d 06  72 13 e7 20 ac 20 73 77  |sprite..r.. . sw|
00001020  69 74 63 68 65 64 25 20  8c 0d 06 7c 23 20 c8 99  |itched% ...|# ..|
00001030  26 32 45 2c 26 32 30 30  2b 36 30 2c 53 61 72 65  |&2E,&200+60,Sare|
00001040  61 25 2c 73 63 72 65 65  6e 25 2c 30 0d 06 90 0c  |a%,screen%,0....|
00001050  20 c8 99 26 35 41 2c 32  0d 06 91 0c 20 c8 99 26  | ..&5A,2.... ..&|
00001060  35 41 2c 31 0d 06 9a 10  20 73 77 69 74 63 68 65  |5A,1.... switche|
00001070  64 25 3d b9 0d 06 a4 05  cd 0d 06 ae 05 e1 0d 06  |d%=.............|
00001080  b8 05 3a 0d 06 c2 0f dd  f2 74 6f 5f 73 63 72 65  |..:......to_scre|
00001090  65 6e 0d 06 cc 11 e7 20  73 77 69 74 63 68 65 64  |en..... switched|
000010a0  25 20 8c 0d 06 cd 15 20  c8 99 20 26 35 41 2c 2d  |% ..... .. &5A,-|
000010b0  31 20 b8 20 2c 63 68 25  0d 06 ce 15 20 63 68 5f  |1 . ,ch%.... ch_|
000010c0  78 30 25 3d 32 2a 63 68  25 21 34 2d 38 0d 06 cf  |x0%=2*ch%!4-8...|
000010d0  15 20 63 68 5f 79 30 25  3d 34 2a 63 68 25 21 38  |. ch_y0%=4*ch%!8|
000010e0  2d 38 0d 06 d0 16 20 63  68 5f 78 31 25 3d 32 2a  |-8.... ch_x1%=2*|
000010f0  63 68 25 21 31 32 2b 38  0d 06 d1 16 20 63 68 5f  |ch%!12+8.... ch_|
00001100  79 31 25 3d 34 2a 63 68  25 21 31 36 2b 38 0d 06  |y1%=4*ch%!16+8..|
00001110  d6 0d 20 c8 99 20 26 35  41 2c 30 0d 06 e0 1d 20  |.. .. &5A,0.... |
00001120  c8 99 26 32 45 2c 26 32  30 30 2b 36 30 2c 53 61  |..&2E,&200+60,Sa|
00001130  72 65 61 25 2c 30 2c 30  0d 06 ea 10 20 73 77 69  |rea%,0,0.... swi|
00001140  74 63 68 65 64 25 3d a3  0d 06 eb 05 cd 0d 06 f4  |tched%=.........|
00001150  05 e1 0d 06 fe 05 3a 0d  07 08 15 dd f2 63 6c 69  |......:......cli|
00001160  63 6b 28 62 25 2c 77 25  2c 69 25 29 0d 07 12 09  |ck(b%,w%,i%)....|
00001170  c8 8e 77 25 ca 0d 07 1c  12 20 c9 49 63 6f 6e 42  |..w%..... .IconB|
00001180  25 3a c8 8e 62 25 ca 0d  07 26 1f 20 20 20 20 20  |%:..b%...&.     |
00001190  20 20 20 20 20 20 20 20  c9 31 3a 53 6f 6e 25 3d  |        .1:Son%=|
000011a0  53 6f 6e 25 82 31 0d 07  30 30 20 20 20 20 20 20  |Son%.1..00      |
000011b0  20 20 20 20 20 20 20 c9  32 3a f2 73 68 6f 77 6d  |       .2:.showm|
000011c0  65 6e 75 28 49 6d 65 6e  75 25 2c 21 42 25 2d 36  |enu(Imenu%,!B%-6|
000011d0  34 2c 32 32 38 29 0d 07  3a 1d 20 20 20 20 20 20  |4,228)..:.      |
000011e0  20 20 20 20 20 20 20 c9  34 3a e7 4d 6f 64 65 4f  |       .4:.ModeO|
000011f0  6b 25 8c 0d 07 44 32 20  20 20 20 20 20 20 20 20  |k%...D2         |
00001200  20 20 20 20 20 20 20 20  20 20 20 e7 57 6f 70 65  |           .Wope|
00001210  6e 25 f2 4f 70 65 6e 57  28 47 57 25 28 57 6f 70  |n%.OpenW(GW%(Wop|
00001220  65 6e 25 29 29 0d 07 4e  30 20 20 20 20 20 20 20  |en%))..N0       |
00001230  20 20 20 20 20 20 20 20  20 20 20 20 20 e7 4f 70  |             .Op|
00001240  6d 6f 64 65 25 3d 31 f2  4f 70 65 6e 57 28 45 64  |mode%=1.OpenW(Ed|
00001250  69 74 57 25 29 0d 07 58  46 20 20 20 20 20 20 20  |itW%)..XF       |
00001260  20 20 20 20 20 20 20 20  20 20 20 20 cc 3a f2 72  |            .:.r|
00001270  65 70 6f 72 74 28 22 53  77 69 74 63 68 20 74 6f  |eport("Switch to|
00001280  20 61 20 73 69 78 74 65  65 6e 20 63 6f 6c 6f 75  | a sixteen colou|
00001290  72 20 6d 6f 64 65 22 2c  31 36 29 0d 07 62 18 20  |r mode",16)..b. |
000012a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000012b0  20 20 cd 0d 07 6c 11 20  20 20 20 20 20 20 20 20  |  ...l.         |
000012c0  20 20 20 cb 0d 07 76 17  20 c9 45 64 69 74 57 25  |   ...v. .EditW%|
000012d0  3a c8 8e 4f 70 6d 6f 64  65 25 ca 0d 07 80 19 20  |:..Opmode%..... |
000012e0  20 20 20 20 20 20 20 20  20 20 20 20 c9 31 3a c8  |            .1:.|
000012f0  8e 62 25 ca 0d 07 8a 20  20 20 20 20 20 20 20 20  |.b%....         |
00001300  20 20 20 20 20 20 20 20  20 20 20 20 c9 34 3a c8  |            .4:.|
00001310  8e 69 25 ca 0d 07 94 38  20 20 20 20 20 20 20 20  |.i%....8        |
00001320  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001330  20 20 20 c9 31 2c 32 2c  33 2c 34 2c 35 2c 36 2c  |   .1,2,3,4,5,6,|
00001340  37 3a f2 73 68 61 70 65  28 69 25 29 0d 07 9e 37  |7:.shape(i%)...7|
00001350  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001360  20 20 20 20 20 20 20 20  20 20 20 c9 38 2c 39 2c  |           .8,9,|
00001370  31 30 2c 31 31 3a f2 6f  70 65 6e 47 57 28 69 25  |10,11:.openGW(i%|
00001380  2d 37 29 0d 07 a8 30 20  20 20 20 20 20 20 20 20  |-7)...0         |
00001390  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000013a0  20 20 c9 31 33 3a e7 57  6f 70 65 6e 25 f2 63 6c  |  .13:.Wopen%.cl|
000013b0  65 61 72 0d 07 b2 2f 20  20 20 20 20 20 20 20 20  |ear.../         |
000013c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000013d0  20 20 c9 31 35 3a f2 74  72 61 6e 73 66 65 72 28  |  .15:.transfer(|
000013e0  32 29 0d 07 bc 1f 20 20  20 20 20 20 20 20 20 20  |2)....          |
000013f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001400  cb 0d 07 c6 18 20 20 20  20 20 20 20 20 20 20 20  |.....           |
00001410  20 20 20 20 20 20 20 20  cb 0d 07 d0 19 20 20 20  |        .....   |
00001420  20 20 20 20 20 20 20 20  20 20 c9 32 3a c8 8e 62  |          .2:..b|
00001430  25 ca 0d 07 da 2b 20 20  20 20 20 20 20 20 20 20  |%....+          |
00001440  20 20 20 20 20 20 20 20  20 20 c9 31 3a e7 69 25  |          .1:.i%|
00001450  3d 31 33 80 4c 65 61 72  6e 25 3d 30 8c 0d 07 e4  |=13.Learn%=0....|
00001460  3f 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |?               |
00001470  20 20 20 20 20 20 20 20  20 20 20 20 e7 50 74 72  |            .Ptr|
00001480  25 3e 30 80 50 74 72 25  81 32 3c 42 79 74 65 6d  |%>0.Ptr%.2<Bytem|
00001490  61 78 25 f2 6c 65 61 72  6e 28 31 29 0d 07 ee 1f  |ax%.learn(1)....|
000014a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000014b0  20 20 20 20 20 20 20 20  20 20 cd 0d 07 f8 20 20  |          ....  |
000014c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000014d0  20 20 20 c9 34 3a c8 8e  69 25 ca 0d 08 02 2a 20  |   .4:..i%....* |
000014e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000014f0  20 20 20 20 20 20 20 20  20 20 c9 38 2c 39 2c 31  |          .8,9,1|
00001500  30 2c 31 31 3a 0d 08 0c  3f 20 20 20 20 20 20 20  |0,11:...?       |
00001510  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001520  20 20 20 20 20 e7 69 25  2d 37 3d 57 6f 70 65 6e  |     .i%-7=Wopen|
00001530  25 f2 4f 70 65 6e 57 28  47 57 25 28 57 6f 70 65  |%.OpenW(GW%(Wope|
00001540  6e 25 29 29 0d 08 16 35  20 20 20 20 20 20 20 20  |n%))...5        |
00001550  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001560  20 20 20 c9 31 33 3a e7  4c 65 61 72 6e 25 3d 30  |   .13:.Learn%=0|
00001570  f2 6c 65 61 72 6e 28 34  29 0d 08 20 2f 20 20 20  |.learn(4).. /   |
00001580  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001590  20 20 20 20 20 20 20 20  c9 31 34 3a f2 74 72 61  |        .14:.tra|
000015a0  6e 73 66 65 72 28 31 29  0d 08 2a 33 20 20 20 20  |nsfer(1)..*3    |
000015b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000015c0  20 20 20 20 20 20 20 c9  31 35 3a e7 4c 65 61 72  |       .15:.Lear|
000015d0  6e 25 f2 6c 65 61 72 6e  28 32 29 0d 08 34 1f 20  |n%.learn(2)..4. |
000015e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000015f0  20 20 20 20 20 20 20 20  20 cb 0d 08 3e 18 20 20  |         ...>.  |
00001600  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001610  20 cb 0d 08 48 11 20 20  20 20 20 20 20 20 20 20  | ...H.          |
00001620  20 20 cb 0d 08 52 22 20  c9 47 57 25 28 31 29 2c  |  ...R" .GW%(1),|
00001630  47 57 25 28 32 29 2c 47  57 25 28 33 29 2c 47 57  |GW%(2),GW%(3),GW|
00001640  25 28 34 29 3a 0d 08 5c  11 20 20 42 25 21 32 30  |%(4):..\.  B%!20|
00001650  3d 42 25 21 31 32 0d 08  66 24 20 20 c8 99 22 57  |=B%!12..f$  .."W|
00001660  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 53 74 61  |imp_GetWindowSta|
00001670  74 65 22 2c 2c 42 25 2b  32 30 0d 08 70 15 20 20  |te",,B%+20..p.  |
00001680  4f 78 25 3d 42 25 21 32  34 2d 42 25 21 34 30 0d  |Ox%=B%!24-B%!40.|
00001690  08 7a 15 20 20 4f 79 25  3d 42 25 21 33 36 2d 42  |.z.  Oy%=B%!36-B|
000016a0  25 21 34 34 0d 08 84 10  20 20 c8 8e 4f 70 6d 6f  |%!44....  ..Opmo|
000016b0  64 65 25 ca 0d 08 8e 0f  20 20 20 c9 31 3a c8 8e  |de%.....   .1:..|
000016c0  62 25 ca 0d 08 98 2a 20  20 20 20 20 20 20 20 20  |b%....*         |
000016d0  20 c9 31 2c 34 3a e7 69  25 3d 38 f2 70 6c 6f 74  | .1,4:.i%=8.plot|
000016e0  28 62 25 2c 21 42 25 2c  42 25 21 34 29 0d 08 a2  |(b%,!B%,B%!4)...|
000016f0  33 20 20 20 20 20 20 20  20 20 20 c9 32 3a e7 69  |3          .2:.i|
00001700  25 3c 38 f2 73 68 6f 77  6d 65 6e 75 28 53 6d 65  |%<8.showmenu(Sme|
00001710  6e 75 25 2c 21 42 25 2d  36 34 2c 42 25 21 34 29  |nu%,!B%-64,B%!4)|
00001720  0d 08 ac 0e 20 20 20 20  20 20 20 20 20 cb 0d 08  |....         ...|
00001730  b6 0f 20 20 20 c9 32 3a  c8 8e 62 25 ca 0d 08 c0  |..   .2:..b%....|
00001740  18 20 20 20 20 20 20 20  20 20 20 c9 31 2c 34 3a  |.          .1,4:|
00001750  c8 8e 69 25 ca 0d 08 ca  2e 20 20 20 20 20 20 20  |..i%.....       |
00001760  20 20 20 20 20 20 20 20  20 20 20 20 c9 38 3a f2  |            .8:.|
00001770  73 65 6c 65 63 74 28 62  25 2c 21 42 25 2c 42 25  |select(b%,!B%,B%|
00001780  21 34 29 0d 08 d4 21 20  20 20 20 20 20 20 20 20  |!4)...!         |
00001790  20 20 20 20 20 20 20 20  20 20 c9 31 31 3a f2 72  |          .11:.r|
000017a0  65 73 65 74 0d 08 de 3c  20 20 20 20 20 20 20 20  |eset...<        |
000017b0  20 20 20 20 20 20 20 20  20 20 20 c9 31 32 3a f2  |           .12:.|
000017c0  72 65 73 65 74 3a 4d 61  73 6b 25 3d 4d 30 25 3a  |reset:Mask%=M0%:|
000017d0  50 74 72 25 3d 30 3a 4f  70 6d 6f 64 65 25 3d 33  |Ptr%=0:Opmode%=3|
000017e0  0d 08 e8 17 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
000017f0  20 20 20 20 20 20 cb 0d  08 f2 33 20 20 20 20 20  |      ....3     |
00001800  20 20 20 20 20 c9 32 3a  e7 69 25 3c 38 f2 73 68  |     .2:.i%<8.sh|
00001810  6f 77 6d 65 6e 75 28 53  6d 65 6e 75 25 2c 21 42  |owmenu(Smenu%,!B|
00001820  25 2d 36 34 2c 42 25 21  34 29 0d 08 fc 0e 20 20  |%-64,B%!4)....  |
00001830  20 20 20 20 20 20 20 cb  0d 09 06 20 20 20 20 c9  |       ....    .|
00001840  33 3a e7 69 25 3d 31 31  f2 72 65 73 65 74 3a 4d  |3:.i%=11.reset:M|
00001850  61 73 6b 25 3d 4d 31 25  0d 09 10 07 20 20 cb 0d  |ask%=M1%....  ..|
00001860  09 1a 12 20 c9 53 61 76  65 57 25 3a c8 8e 62 25  |... .SaveW%:..b%|
00001870  ca 0d 09 24 25 20 20 20  20 20 20 20 20 20 20 20  |...$%           |
00001880  20 20 c9 31 2c 34 3a e7  69 25 3d 32 f2 51 75 69  |  .1,4:.i%=2.Qui|
00001890  63 6b 53 61 76 65 0d 09  2e 1d 20 20 20 20 20 20  |ckSave....      |
000018a0  20 20 20 20 20 20 20 c9  31 36 2c 36 34 3a f2 64  |       .16,64:.d|
000018b0  72 61 67 0d 09 38 11 20  20 20 20 20 20 20 20 20  |rag..8.         |
000018c0  20 20 20 cb 0d 09 42 05  cb 0d 09 4c 05 e1 0d 09  |   ...B....L....|
000018d0  56 04 0d 09 60 10 dd f2  6b 65 79 28 77 25 2c 6b  |V...`...key(w%,k|
000018e0  25 29 0d 09 6a 09 c8 8e  6b 25 ca 0d 09 74 0e 20  |%)..j...k%...t. |
000018f0  c9 31 33 3a c8 8e 77 25  ca 0d 09 7e 3d 20 20 20  |.13:..w%...~=   |
00001900  20 20 20 20 20 20 c9 45  64 69 74 57 25 3a f2 55  |      .EditW%:.U|
00001910  69 28 47 57 25 28 57 6f  70 65 6e 25 29 2c 30 2c  |i(GW%(Wopen%),0,|
00001920  a4 47 65 74 53 74 72 69  6e 67 28 45 64 69 74 57  |.GetString(EditW|
00001930  25 2c 31 32 29 29 0d 09  88 24 20 20 20 20 20 20  |%,12))...$      |
00001940  20 20 20 20 20 20 20 20  20 20 20 20 20 20 e7 41  |              .A|
00001950  24 3d 22 22 f2 61 28 2d  31 29 0d 09 92 1f 20 20  |$="".a(-1)....  |
00001960  20 20 20 20 20 20 20 c9  53 61 76 65 57 25 3a f2  |       .SaveW%:.|
00001970  51 75 69 63 6b 53 61 76  65 0d 09 9c 25 20 20 20  |QuickSave...%   |
00001980  20 20 20 20 20 20 7f 3a  c8 99 22 57 69 6d 70 5f  |      .:.."Wimp_|
00001990  50 72 6f 63 65 73 73 4b  65 79 22 2c 6b 25 0d 09  |ProcessKey",k%..|
000019a0  a6 0d 20 20 20 20 20 20  20 20 cb 0d 09 b0 1d 20  |..        ..... |
000019b0  7f 3a c8 99 22 57 69 6d  70 5f 50 72 6f 63 65 73  |.:.."Wimp_Proces|
000019c0  73 4b 65 79 22 2c 6b 25  0d 09 ba 05 cb 0d 09 c4  |sKey",k%........|
000019d0  05 e1 0d 09 ce 04 0d 09  d8 17 dd f2 6d 65 6e 75  |............menu|
000019e0  73 65 6c 65 63 74 28 6d  65 6e 75 25 29 0d 09 e2  |select(menu%)...|
000019f0  10 c8 8e 4d 65 6e 75 6f  70 65 6e 25 ca 0d 09 ec  |...Menuopen%....|
00001a00  15 20 c9 49 6d 65 6e 75  25 3a c8 8e 6d 65 6e 75  |. .Imenu%:..menu|
00001a10  25 ca 0d 09 f6 1d 20 20  20 20 20 20 20 20 20 20  |%.....          |
00001a20  20 20 20 c9 31 3a e7 4d  6f 64 65 4f 6b 25 8c 0d  |   .1:.ModeOk%..|
00001a30  0a 00 41 20 20 20 20 20  20 20 20 20 20 20 20 20  |..A             |
00001a40  20 20 20 20 20 20 20 f2  4f 70 65 6e 57 28 45 64  |       .OpenW(Ed|
00001a50  69 74 57 25 29 3a e7 57  6f 70 65 6e 25 f2 4f 70  |itW%):.Wopen%.Op|
00001a60  65 6e 57 28 47 57 25 28  57 6f 70 65 6e 25 29 29  |enW(GW%(Wopen%))|
00001a70  0d 0a 0a 18 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
00001a80  20 20 20 20 20 20 20 cd  0d 0a 14 22 20 20 20 20  |       ...."    |
00001a90  20 20 20 20 20 20 20 20  20 c9 32 3a e7 a4 6f 6b  |         .2:..ok|
00001aa0  28 31 29 20 51 75 69 74  3d b9 0d 0a 1e 11 20 20  |(1) Quit=.....  |
00001ab0  20 20 20 20 20 20 20 20  20 20 cb 0d 0a 28 1f 20  |          ...(. |
00001ac0  c9 53 6d 65 6e 75 25 3a  e7 6d 65 6e 75 25 3d 30  |.Smenu%:.menu%=0|
00001ad0  f2 51 75 69 63 6b 53 61  76 65 0d 0a 32 05 cb 0d  |.QuickSave..2...|
00001ae0  0a 3c 05 e1 0d 0a 46 04  0d 0a 50 1b dd f2 73 68  |.<....F...P...sh|
00001af0  6f 77 6d 65 6e 75 28 6d  65 6e 75 25 2c 78 25 2c  |owmenu(menu%,x%,|
00001b00  79 25 29 0d 0a 5a 24 c8  99 22 57 69 6d 70 5f 43  |y%)..Z$.."Wimp_C|
00001b10  72 65 61 74 65 4d 65 6e  75 22 2c 2c 6d 65 6e 75  |reateMenu",,menu|
00001b20  25 2c 78 25 2c 79 25 0d  0a 64 13 4d 65 6e 75 6f  |%,x%,y%..d.Menuo|
00001b30  70 65 6e 25 3d 6d 65 6e  75 25 0d 0a 6e 05 e1 0d  |pen%=menu%..n...|
00001b40  0a 78 04 0d 0a 82 11 dd  f2 72 65 63 65 69 76 65  |.x.......receive|
00001b50  28 6d 25 29 0d 0a 8c 09  c8 8e 6d 25 ca 0d 0a 96  |(m%)......m%....|
00001b60  0e 20 c9 30 3a 51 75 69  74 3d b9 0d 0a a0 11 20  |. .0:Quit=..... |
00001b70  c9 32 3a f2 44 61 74 61  53 61 76 65 0d 0a aa 30  |.2:.DataSave...0|
00001b80  20 c9 33 3a e7 42 25 21  34 30 3d 26 30 30 34 e7  | .3:.B%!40=&004.|
00001b90  a4 6f 6b 28 32 29 20 f2  6c 6f 61 64 28 a4 73 74  |.ok(2) .load(.st|
00001ba0  72 69 6e 67 28 42 25 2b  34 34 29 29 0d 0a b4 39  |ring(B%+44))...9|
00001bb0  20 c9 35 3a e7 42 25 21  34 30 3d 26 30 30 34 f2  | .5:.B%!40=&004.|
00001bc0  6c 6f 61 64 61 63 6b 3a  e7 a4 6f 6b 28 32 29 20  |loadack:..ok(2) |
00001bd0  f2 6c 6f 61 64 28 a4 73  74 72 69 6e 67 28 42 25  |.load(.string(B%|
00001be0  2b 34 34 29 29 0d 0a be  12 20 c9 26 34 30 30 43  |+44)).... .&400C|
00001bf0  31 3a f2 6d 6f 64 65 0d  0a c8 05 cb 0d 0a d2 05  |1:.mode.........|
00001c00  e1 0d 0a dc 04 0d 0a e6  0d dd f2 6c 6f 61 64 61  |...........loada|
00001c10  63 6b 0d 0a f0 1d 42 25  21 31 32 3d 42 25 21 38  |ck....B%!12=B%!8|
00001c20  3a 42 25 21 31 36 3d 34  3a 21 42 25 3d 36 34 0d  |:B%!16=4:!B%=64.|
00001c30  0a fa 23 c8 99 22 57 69  6d 70 5f 53 65 6e 64 4d  |..#.."Wimp_SendM|
00001c40  65 73 73 61 67 65 22 2c  31 37 2c 42 25 2c 42 25  |essage",17,B%,B%|
00001c50  21 34 0d 0b 04 05 e1 0d  0b 0e 04 0d 0b 18 17 dd  |!4..............|
00001c60  f2 72 65 70 6f 72 74 28  65 72 72 24 2c 62 69 74  |.report(err$,bit|
00001c70  25 29 0d 0b 22 36 6e 61  6d 65 24 3d 41 70 70 24  |%).."6name$=App$|
00001c80  3a e7 20 62 69 74 25 20  80 20 31 36 20 6e 61 6d  |:. bit% . 16 nam|
00001c90  65 24 3d 22 4d 65 73 73  61 67 65 20 66 72 6f 6d  |e$="Message from|
00001ca0  20 22 2b 6e 61 6d 65 24  0d 0b 2c 1d 21 45 25 3d  | "+name$..,.!E%=|
00001cb0  32 35 35 3a 24 28 45 25  2b 34 29 3d 65 72 72 24  |255:$(E%+4)=err$|
00001cc0  2b bd 28 30 29 0d 0b 36  30 c8 99 22 57 69 6d 70  |+.(0)..60.."Wimp|
00001cd0  5f 52 65 70 6f 72 74 45  72 72 6f 72 22 2c 45 25  |_ReportError",E%|
00001ce0  2c 62 69 74 25 2c 6e 61  6d 65 24 20 b8 2c 53 65  |,bit%,name$ .,Se|
00001cf0  6c 65 63 74 25 0d 0b 40  05 e1 0d 0b 4a 04 0d 0b  |lect%..@....J...|
00001d00  54 11 dd f2 65 72 72 6f  72 28 62 69 74 25 29 0d  |T...error(bit%).|
00001d10  0b 55 0e f2 74 6f 5f 73  63 72 65 65 6e 0d 0b 5e  |.U..to_screen..^|
00001d20  47 65 24 3d 22 3b 69 6e  74 65 72 6e 61 6c 20 65  |Ge$=";internal e|
00001d30  72 72 6f 72 20 63 6f 64  65 20 22 2b c3 9e 3a e7  |rror code "+..:.|
00001d40  62 69 74 25 3d 33 65 24  2b 3d 22 3b 70 72 65 73  |bit%=3e$+=";pres|
00001d50  73 20 5b 43 41 4e 43 45  4c 5d 20 74 6f 20 71 75  |s [CANCEL] to qu|
00001d60  69 74 2e 22 0d 0b 68 2b  f2 72 65 70 6f 72 74 28  |it."..h+.report(|
00001d70  f6 24 2b 65 24 2c 62 69  74 25 29 3a e7 62 69 74  |.$+e$,bit%):.bit|
00001d80  25 3d 33 3a e7 53 65 6c  65 63 74 25 3d 31 e1 0d  |%=3:.Select%=1..|
00001d90  0b 72 18 c8 99 22 57 69  6d 70 5f 43 6c 6f 73 65  |.r..."Wimp_Close|
00001da0  44 6f 77 6e 22 3a e0 0d  0b 7c 05 e1 0d 0b 86 04  |Down":...|......|
00001db0  0d 0b 90 10 dd f2 4f 70  65 6e 57 28 21 42 25 29  |......OpenW(!B%)|
00001dc0  0d 0b 9a 1f c8 99 22 57  69 6d 70 5f 47 65 74 57  |......"Wimp_GetW|
00001dd0  69 6e 64 6f 77 53 74 61  74 65 22 2c 2c 42 25 0d  |indowState",,B%.|
00001de0  0b a4 24 42 25 21 32 38  3d 2d 31 3a c8 99 22 57  |..$B%!28=-1:.."W|
00001df0  69 6d 70 5f 4f 70 65 6e  57 69 6e 64 6f 77 22 2c  |imp_OpenWindow",|
00001e00  2c 42 25 0d 0b ae 05 e1  0d 0b b8 04 0d 0b c2 11  |,B%.............|
00001e10  dd f2 43 6c 6f 73 65 57  28 21 42 25 29 0d 0b cc  |..CloseW(!B%)...|
00001e20  1c c8 99 22 57 69 6d 70  5f 43 6c 6f 73 65 57 69  |..."Wimp_CloseWi|
00001e30  6e 64 6f 77 22 2c 2c 42  25 0d 0b d6 05 e1 0d 0b  |ndow",,B%.......|
00001e40  e0 04 0d 0b ea 15 dd f2  55 69 28 21 42 25 2c 42  |........Ui(!B%,B|
00001e50  25 21 34 2c 74 24 29 0d  0b f4 38 c8 99 26 34 30  |%!4,t$)...8..&40|
00001e60  30 43 45 2c 2c 42 25 3a  24 28 42 25 21 32 38 29  |0CE,,B%:$(B%!28)|
00001e70  3d 74 24 3a 42 25 21 38  3d 30 3a 42 25 21 31 32  |=t$:B%!8=0:B%!12|
00001e80  3d 30 3a c8 99 26 34 30  30 43 44 2c 2c 42 25 0d  |=0:..&400CD,,B%.|
00001e90  0b fe 05 e1 0d 0c 08 04  0d 0c 12 12 dd f2 48 69  |..............Hi|
00001ea0  28 21 42 25 2c 42 25 21  34 29 0d 0c 1c 27 42 25  |(!B%,B%!4)...'B%|
00001eb0  21 38 3d 31 3c 3c 32 31  3a 42 25 21 31 32 3d 31  |!8=1<<21:B%!12=1|
00001ec0  3c 3c 32 31 3a c8 99 26  34 30 30 43 44 2c 2c 42  |<<21:..&400CD,,B|
00001ed0  25 0d 0c 26 05 e1 0d 0c  30 04 0d 0c 3a 12 dd f2  |%..&....0...:...|
00001ee0  4c 69 28 21 42 25 2c 42  25 21 34 29 0d 0c 44 23  |Li(!B%,B%!4)..D#|
00001ef0  42 25 21 38 3d 30 3a 42  25 21 31 32 3d 31 3c 3c  |B%!8=0:B%!12=1<<|
00001f00  32 31 3a c8 99 26 34 30  30 43 44 2c 2c 42 25 0d  |21:..&400CD,,B%.|
00001f10  0c 4e 05 e1 0d 0c 58 04  0d 0c 62 08 dd f2 41 69  |.N....X...b...Ai|
00001f20  0d 0c 6c 16 21 42 25 3d  45 64 69 74 57 25 3a 42  |..l.!B%=EditW%:B|
00001f30  25 21 34 3d 31 33 0d 0c  76 0d c8 8e 4c 65 61 72  |%!4=13..v...Lear|
00001f40  6e 25 ca 0d 0c 80 2f 20  c9 30 20 3a 42 25 21 38  |n%..../ .0 :B%!8|
00001f50  3d 25 31 31 31 30 30 31  31 31 30 30 30 30 30 30  |=%11100111000000|
00001f60  30 30 31 30 30 31 30 30  30 30 30 30 30 30 30 30  |0010010000000000|
00001f70  30 30 0d 0c 8a 2f 20 c9  2d 31 3a 42 25 21 38 3d  |00.../ .-1:B%!8=|
00001f80  25 30 31 31 31 31 31 31  30 30 30 30 30 30 30 30  |%011111100000000|
00001f90  30 30 30 31 31 30 30 30  30 30 30 30 30 30 30 30  |0001100000000000|
00001fa0  30 0d 0c 94 05 cb 0d 0c  9e 2b 42 25 21 31 32 3d  |0........+B%!12=|
00001fb0  25 31 31 31 31 31 31 31  31 30 30 30 30 30 30 30  |%111111110000000|
00001fc0  30 31 31 31 31 30 30 30  30 30 30 30 30 30 30 30  |0111100000000000|
00001fd0  30 0d 0c a8 1d c8 99 22  57 69 6d 70 5f 53 65 74  |0......"Wimp_Set|
00001fe0  49 63 6f 6e 53 74 61 74  65 22 2c 2c 42 25 0d 0c  |IconState",,B%..|
00001ff0  b2 05 e1 0d 0c bc 04 0d  0c c6 12 dd f2 53 69 28  |.............Si(|
00002000  21 42 25 2c 42 25 21 34  29 0d 0c d0 27 42 25 21  |!B%,B%!4)...'B%!|
00002010  38 3d 31 3c 3c 32 32 3a  42 25 21 31 32 3d 31 3c  |8=1<<22:B%!12=1<|
00002020  3c 32 32 3a c8 99 26 34  30 30 43 44 2c 2c 42 25  |<22:..&400CD,,B%|
00002030  0d 0c da 05 e1 0d 0c e4  04 0d 0c ee 13 dd f2 55  |...............U|
00002040  73 69 28 21 42 25 2c 42  25 21 34 29 0d 0c f8 23  |si(!B%,B%!4)...#|
00002050  42 25 21 38 3d 30 3a 42  25 21 31 32 3d 31 3c 3c  |B%!8=0:B%!12=1<<|
00002060  32 32 3a c8 99 26 34 30  30 43 44 2c 2c 42 25 0d  |22:..&400CD,,B%.|
00002070  0d 02 05 e1 0d 0d 0c 04  0d 0d 16 19 dd a4 47 65  |..............Ge|
00002080  74 53 74 72 69 6e 67 28  21 42 25 2c 42 25 21 34  |tString(!B%,B%!4|
00002090  29 0d 0d 20 1d c8 99 22  57 69 6d 70 5f 47 65 74  |).. ..."Wimp_Get|
000020a0  49 63 6f 6e 53 74 61 74  65 22 2c 2c 42 25 0d 0d  |IconState",,B%..|
000020b0  2a 2e e7 20 28 28 42 25  21 32 34 29 20 80 20 26  |*.. ((B%!24) . &|
000020c0  31 30 30 29 3d 30 20 8c  3d 24 28 42 25 2b 32 38  |100)=0 .=$(B%+28|
000020d0  29 20 8b 3d 24 28 42 25  21 32 38 29 0d 0d 34 04  |) .=$(B%!28)..4.|
000020e0  0d 0d 3e 15 dd f2 44 6d  28 6d 65 6e 75 25 2c 69  |..>...Dm(menu%,i|
000020f0  74 65 6d 25 29 0d 0d 48  33 6d 65 6e 75 25 21 28  |tem%)..H3menu%!(|
00002100  33 36 2b 69 74 65 6d 25  2a 32 34 29 3d 6d 65 6e  |36+item%*24)=men|
00002110  75 25 21 28 33 36 2b 69  74 65 6d 25 2a 32 34 29  |u%!(36+item%*24)|
00002120  84 28 31 3c 3c 32 32 29  0d 0d 52 05 e1 0d 0d 5c  |.(1<<22)..R....\|
00002130  04 0d 0d 66 15 dd f2 45  6d 28 6d 65 6e 75 25 2c  |...f...Em(menu%,|
00002140  69 74 65 6d 25 29 0d 0d  70 14 f2 44 6d 28 6d 65  |item%)..p..Dm(me|
00002150  6e 75 25 2c 69 74 65 6d  25 29 0d 0d 7a 33 6d 65  |nu%,item%)..z3me|
00002160  6e 75 25 21 28 33 36 2b  69 74 65 6d 25 2a 32 34  |nu%!(36+item%*24|
00002170  29 3d 6d 65 6e 75 25 21  28 33 36 2b 69 74 65 6d  |)=menu%!(36+item|
00002180  25 2a 32 34 29 82 28 31  3c 3c 32 32 29 0d 0d 84  |%*24).(1<<22)...|
00002190  05 e1 0d 0d 8e 04 0d 0d  98 15 dd f2 53 65 74 43  |............SetC|
000021a0  61 72 65 74 28 77 25 2c  69 25 29 0d 0d a2 3b c8  |aret(w%,i%)...;.|
000021b0  99 22 57 69 6d 70 5f 53  65 74 43 61 72 65 74 50  |."Wimp_SetCaretP|
000021c0  6f 73 69 74 69 6f 6e 22  2c 77 25 2c 69 25 2c 2c  |osition",w%,i%,,|
000021d0  2c 2d 31 2c a9 a4 47 65  74 53 74 72 69 6e 67 28  |,-1,..GetString(|
000021e0  77 25 2c 69 25 29 0d 0d  ac 05 e1 0d 0d b6 04 0d  |w%,i%)..........|
000021f0  0d c0 13 dd f2 74 69 74  6c 65 28 21 42 25 2c 74  |.....title(!B%,t|
00002200  24 29 0d 0d ca 1e c8 99  22 57 69 6d 70 5f 47 65  |$)......"Wimp_Ge|
00002210  74 57 69 6e 64 6f 77 49  6e 66 6f 22 2c 2c 42 25  |tWindowInfo",,B%|
00002220  0d 0d d4 1a 70 74 72 25  3d 21 28 42 25 2b 37 36  |....ptr%=!(B%+76|
00002230  29 3a 24 70 74 72 25 3d  74 24 0d 0d de 45 e7 21  |):$ptr%=t$...E.!|
00002240  42 25 3d 47 57 25 28 57  6f 70 65 6e 25 29 c8 99  |B%=GW%(Wopen%)..|
00002250  22 57 69 6d 70 5f 46 6f  72 63 65 52 65 64 72 61  |"Wimp_ForceRedra|
00002260  77 22 2c 2d 31 2c 42 25  21 34 2c 42 25 21 31 36  |w",-1,B%!4,B%!16|
00002270  2c 42 25 21 31 32 2c 42  25 21 31 36 2b 33 36 0d  |,B%!12,B%!16+36.|
00002280  0d e8 05 e1 0d 0d f2 04  0d 0d fc 0a dd f2 64 72  |..............dr|
00002290  61 67 0d 0e 06 2a 21 42  25 3d 53 61 76 65 57 25  |ag...*!B%=SaveW%|
000022a0  3a c8 99 22 57 69 6d 70  5f 47 65 74 57 69 6e 64  |:.."Wimp_GetWind|
000022b0  6f 77 53 74 61 74 65 22  2c 2c 42 25 0d 0e 10 29  |owState",,B%...)|
000022c0  6f 78 25 3d 42 25 21 34  2d 42 25 21 32 30 3a 6f  |ox%=B%!4-B%!20:o|
000022d0  79 25 3d 42 25 21 31 36  2d 42 25 21 32 34 3a 42  |y%=B%!16-B%!24:B|
000022e0  25 21 34 3d 30 0d 0e 1a  1d c8 99 22 57 69 6d 70  |%!4=0......"Wimp|
000022f0  5f 47 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_GetIconState",,|
00002300  42 25 0d 0e 24 28 42 25  21 34 3d 35 3a 42 25 21  |B%..$(B%!4=5:B%!|
00002310  38 3d 6f 78 25 2b 42 25  21 38 3a 42 25 21 31 32  |8=ox%+B%!8:B%!12|
00002320  3d 6f 79 25 2b 42 25 21  31 32 0d 0e 2e 23 42 25  |=oy%+B%!12...#B%|
00002330  21 31 36 3d 6f 78 25 2b  42 25 21 31 36 3a 42 25  |!16=ox%+B%!16:B%|
00002340  21 32 30 3d 6f 79 25 2b  42 25 21 32 30 0d 0e 38  |!20=oy%+B%!20..8|
00002350  31 42 25 21 32 34 3d 30  3a 42 25 21 32 38 3d 30  |1B%!24=0:B%!28=0|
00002360  3a 42 25 21 33 32 3d 26  37 46 46 46 46 46 46 3a  |:B%!32=&7FFFFFF:|
00002370  42 25 21 33 36 3d 26 37  46 46 46 46 46 46 0d 0e  |B%!36=&7FFFFFF..|
00002380  42 18 c8 99 22 57 69 6d  70 5f 44 72 61 67 42 6f  |B..."Wimp_DragBo|
00002390  78 22 2c 2c 42 25 0d 0e  4c 05 e1 0d 0e 56 04 0d  |x",,B%..L....V..|
000023a0  0e 60 12 dd f2 44 72 61  67 46 69 6e 69 73 68 65  |.`...DragFinishe|
000023b0  64 0d 0e 6a 3a 70 61 74  68 24 3d a4 47 65 74 53  |d..j:path$=.GetS|
000023c0  74 72 69 6e 67 28 53 61  76 65 57 25 2c 31 29 3a  |tring(SaveW%,1):|
000023d0  c8 99 22 57 69 6d 70 5f  47 65 74 50 6f 69 6e 74  |.."Wimp_GetPoint|
000023e0  65 72 49 6e 66 6f 22 2c  2c 42 25 0d 0e 74 30 42  |erInfo",,B%..t0B|
000023f0  25 21 32 30 3d 42 25 21  31 32 3a 42 25 21 32 34  |%!20=B%!12:B%!24|
00002400  3d 42 25 21 31 36 3a 42  25 21 32 38 3d 21 42 25  |=B%!16:B%!28=!B%|
00002410  3a 42 25 21 33 32 3d 42  25 21 34 0d 0e 7e 34 42  |:B%!32=B%!4..~4B|
00002420  25 21 33 36 3d 37 31 2b  45 78 74 44 25 3a 21 42  |%!36=71+ExtD%:!B|
00002430  25 3d 36 34 3a 42 25 21  31 32 3d 30 3a 42 25 21  |%=64:B%!12=0:B%!|
00002440  31 36 3d 31 3a 42 25 21  34 30 3d 26 30 30 34 0d  |16=1:B%!40=&004.|
00002450  0e 88 1e 24 28 42 25 2b  34 34 29 3d a4 47 65 74  |...$(B%+44)=.Get|
00002460  4c 65 61 66 28 70 61 74  68 24 2c 30 29 0d 0e 92  |Leaf(path$,0)...|
00002470  2a c8 99 22 57 69 6d 70  5f 53 65 6e 64 4d 65 73  |*.."Wimp_SendMes|
00002480  73 61 67 65 22 2c 31 37  2c 42 25 2c 42 25 21 32  |sage",17,B%,B%!2|
00002490  30 2c 42 25 21 32 34 0d  0e 9c 05 e1 0d 0e a6 04  |0,B%!24.........|
000024a0  0d 0e b0 14 dd a4 47 65  74 4c 65 61 66 28 61 24  |......GetLeaf(a$|
000024b0  2c 63 25 29 0d 0e ba 24  c8 95 20 a7 61 24 2c 22  |,c%)...$.. .a$,"|
000024c0  2e 22 29 3a 61 24 3d c1  61 24 2c a7 61 24 2c 22  |."):a$=.a$,.a$,"|
000024d0  2e 22 29 2b 31 29 3a ce  0d 0e c4 0b 3d 61 24 2b  |.")+1):.....=a$+|
000024e0  bd 63 25 0d 0e ce 04 0d  0e d8 0e dd f2 44 61 74  |.c%..........Dat|
000024f0  61 53 61 76 65 0d 0e e2  20 f2 55 69 28 53 61 76  |aSave... .Ui(Sav|
00002500  65 57 25 2c 31 2c a4 73  74 72 69 6e 67 28 42 25  |eW%,1,.string(B%|
00002510  2b 34 34 29 29 0d 0e ec  24 f2 73 61 76 65 3a 42  |+44))...$.save:B|
00002520  25 21 31 32 3d 42 25 21  38 3a 42 25 21 31 36 3d  |%!12=B%!8:B%!16=|
00002530  33 3a 21 42 25 3d 32 35  36 0d 0e f6 2a c8 99 22  |3:!B%=256...*.."|
00002540  57 69 6d 70 5f 53 65 6e  64 4d 65 73 73 61 67 65  |Wimp_SendMessage|
00002550  22 2c 31 37 2c 42 25 2c  42 25 21 32 30 2c 42 25  |",17,B%,B%!20,B%|
00002560  21 32 34 0d 0f 00 1a c8  99 22 57 69 6d 70 5f 43  |!24......"Wimp_C|
00002570  72 65 61 74 65 4d 65 6e  75 22 2c 2d 31 0d 0f 0a  |reateMenu",-1...|
00002580  05 e1 0d 0f 14 04 0d 0f  1e 12 dd a4 73 74 72 69  |............stri|
00002590  6e 67 28 70 74 72 25 29  0d 0f 28 07 ea 61 24 0d  |ng(ptr%)..(..a$.|
000025a0  0f 32 26 c8 95 20 3f 70  74 72 25 3c 3e 30 3a 61  |.2&.. ?ptr%<>0:a|
000025b0  24 2b 3d bd 28 3f 70 74  72 25 29 3a 70 74 72 25  |$+=.(?ptr%):ptr%|
000025c0  2b 3d 31 3a ce 0d 0f 3c  07 3d 61 24 0d 0f 46 04  |+=1:...<.=a$..F.|
000025d0  0d 0f 50 0f dd f2 51 75  69 63 6b 53 61 76 65 0d  |..P...QuickSave.|
000025e0  0f 5a 22 e7 20 a7 a4 47  65 74 53 74 72 69 6e 67  |.Z". ..GetString|
000025f0  28 53 61 76 65 57 25 2c  31 29 2c 22 2e 22 29 20  |(SaveW%,1),".") |
00002600  8c 0d 0f 64 0a 20 f2 73  61 76 65 0d 0f 6e 40 cc  |...d. .save..n@.|
00002610  3a f2 72 65 70 6f 72 74  28 22 54 6f 20 73 61 76  |:.report("To sav|
00002620  65 2c 20 64 72 61 67 20  74 68 65 20 69 63 6f 6e  |e, drag the icon|
00002630  20 74 6f 20 61 20 64 69  72 65 63 74 6f 72 79 20  | to a directory |
00002640  76 69 65 77 65 72 22 2c  31 36 29 0d 0f 78 1c cd  |viewer",16)..x..|
00002650  3a c8 99 22 57 69 6d 70  5f 43 72 65 61 74 65 4d  |:.."Wimp_CreateM|
00002660  65 6e 75 22 2c 2d 31 0d  0f 82 05 e1 0d 0f 8c 04  |enu",-1.........|
00002670  0d 0f 96 17 f4 2d 2d 2d  45 64 69 74 6f 72 20 70  |.....---Editor p|
00002680  72 6f 63 73 2d 2d 2d 0d  0f a0 04 0d 0f aa 11 dd  |rocs---.........|
00002690  f2 6c 6f 61 64 28 70 61  74 68 24 29 0d 0f b4 0d  |.load(path$)....|
000026a0  ea 74 24 2c 77 25 2c 64  25 0d 0f be 1d f2 55 69  |.t$,w%,d%.....Ui|
000026b0  28 53 61 76 65 57 25 2c  31 2c 22 53 6c 69 63 6b  |(SaveW%,1,"Slick|
000026c0  66 69 6c 65 22 29 0d 0f  c8 1e 4d 61 73 6b 25 3d  |file")....Mask%=|
000026d0  4d 31 25 3a e7 4c 65 61  72 6e 25 f2 6c 65 61 72  |M1%:.Learn%.lear|
000026e0  6e 28 30 29 0d 0f d2 1f  e3 6e 25 3d 31 b8 34 3a  |n(0).....n%=1.4:|
000026f0  f2 55 69 28 47 57 25 28  6e 25 29 2c 30 2c 22 22  |.Ui(GW%(n%),0,""|
00002700  29 3a ed 0d 0f dc 0f 46  25 3d 8e 28 70 61 74 68  |):.....F%=.(path|
00002710  24 29 0d 0f e6 22 e3 6e  25 3d 30 b8 32 39 3a 43  |$)...".n%=0.29:C|
00002720  25 28 6e 25 29 3d 9a 23  46 25 3a ed 3a 77 25 3d  |%(n%)=.#F%:.:w%=|
00002730  9a 23 46 25 0d 0f f0 24  e8 23 46 25 2c 74 24 3a  |.#F%...$.#F%,t$:|
00002740  45 78 74 44 25 3d 9a 23  46 25 3a 45 78 74 44 25  |ExtD%=.#F%:ExtD%|
00002750  3d 45 78 74 44 25 2a 32  0d 0f fa 0b e7 45 78 74  |=ExtD%*2.....Ext|
00002760  44 25 8c 0d 10 04 22 20  e3 62 25 3d 30 b8 45 78  |D%...." .b%=0.Ex|
00002770  74 44 25 2d 31 3a 44 65  6d 6f 25 3f 62 25 3d 9a  |tD%-1:Demo%?b%=.|
00002780  23 46 25 3a ed 0d 10 0e  05 cd 0d 10 18 1a d9 23  |#F%:...........#|
00002790  46 25 3a f2 55 69 28 47  57 25 28 77 25 29 2c 30  |F%:.Ui(GW%(w%),0|
000027a0  2c 74 24 29 0d 10 22 38  f2 6f 70 65 6e 47 57 28  |,t$).."8.openGW(|
000027b0  77 25 29 3a f2 74 72 61  6e 73 66 65 72 28 32 29  |w%):.transfer(2)|
000027c0  3a 4c 24 3d a4 47 65 74  4c 65 61 66 28 70 61 74  |:L$=.GetLeaf(pat|
000027d0  68 24 2c 33 32 29 3a f2  61 28 30 29 0d 10 2c 05  |h$,32):.a(0)..,.|
000027e0  e1 0d 10 36 04 0d 10 40  12 dd f2 74 72 61 6e 73  |...6...@...trans|
000027f0  66 65 72 28 6d 25 29 0d  10 4a 09 c8 8e 6d 25 ca  |fer(m%)..J...m%.|
00002800  0d 10 54 24 20 c9 31 3a  e3 6e 25 3d 30 b8 32 39  |..T$ .1:.n%=0.29|
00002810  3a e7 43 31 25 28 6e 25  29 3d 30 43 31 25 28 6e  |:.C1%(n%)=0C1%(n|
00002820  25 29 3d 37 0d 10 5e 17  20 20 20 20 20 20 20 ed  |%)=7..^.       .|
00002830  3a 43 25 28 29 3d 43 31  25 28 29 0d 10 68 2a 20  |:C%()=C1%()..h* |
00002840  20 20 20 20 20 20 e3 6e  25 3d 31 31 b8 31 32 3a  |      .n%=11.12:|
00002850  f2 53 69 28 47 57 25 28  57 6f 70 65 6e 25 29 2c  |.Si(GW%(Wopen%),|
00002860  6e 25 29 3a ed 0d 10 72  2f 20 20 20 20 20 20 20  |n%):...r/       |
00002870  f2 44 6d 28 53 6d 65 6e  75 25 2c 30 29 3a f2 55  |.Dm(Smenu%,0):.U|
00002880  69 28 45 64 69 74 57 25  2c 31 33 2c 22 43 6c 65  |i(EditW%,13,"Cle|
00002890  61 72 22 29 0d 10 7c 28  20 20 20 20 20 20 20 f2  |ar")..|(       .|
000028a0  48 69 28 45 64 69 74 57  25 2c 31 34 29 3a f2 4c  |Hi(EditW%,14):.L|
000028b0  69 28 45 64 69 74 57 25  2c 31 35 29 0d 10 86 22  |i(EditW%,15)..."|
000028c0  20 c9 32 3a e3 6e 25 3d  30 b8 32 39 3a e7 43 25  | .2:.n%=0.29:.C%|
000028d0  28 6e 25 29 3d 37 43 25  28 6e 25 29 3d 30 0d 10  |(n%)=7C%(n%)=0..|
000028e0  90 17 20 20 20 20 20 20  20 ed 3a 43 31 25 28 29  |..       .:C1%()|
000028f0  3d 43 25 28 29 0d 10 9a  3a 20 20 20 20 20 20 20  |=C%()...:       |
00002900  e7 53 68 61 70 65 25 3d  37 f2 65 78 57 28 32 35  |.Shape%=7.exW(25|
00002910  30 29 3a c8 99 22 57 69  6d 70 5f 53 65 74 43 61  |0):.."Wimp_SetCa|
00002920  72 65 74 50 6f 73 69 74  69 6f 6e 22 2c 2d 31 0d  |retPosition",-1.|
00002930  10 a4 2d 20 20 20 20 20  20 20 e7 53 68 61 70 65  |..-       .Shape|
00002940  25 f2 4c 69 28 45 64 69  74 57 25 2c 53 68 61 70  |%.Li(EditW%,Shap|
00002950  65 25 29 3a 53 68 61 70  65 25 3d 30 0d 10 ae 1f  |e%):Shape%=0....|
00002960  20 20 20 20 20 20 20 f2  55 73 69 28 47 57 25 28  |       .Usi(GW%(|
00002970  57 6f 70 65 6e 25 29 2c  31 31 29 0d 10 b8 39 20  |Wopen%),11)...9 |
00002980  20 20 20 20 20 20 e7 45  78 74 44 25 f2 55 73 69  |      .ExtD%.Usi|
00002990  28 47 57 25 28 57 6f 70  65 6e 25 29 2c 31 32 29  |(GW%(Wopen%),12)|
000029a0  8b f2 53 69 28 47 57 25  28 57 6f 70 65 6e 25 29  |..Si(GW%(Wopen%)|
000029b0  2c 31 32 29 0d 10 c2 2f  20 20 20 20 20 20 20 f2  |,12).../       .|
000029c0  45 6d 28 53 6d 65 6e 75  25 2c 30 29 3a f2 55 69  |Em(Smenu%,0):.Ui|
000029d0  28 45 64 69 74 57 25 2c  31 33 2c 22 4c 65 61 72  |(EditW%,13,"Lear|
000029e0  6e 22 29 0d 10 cc 28 20  20 20 20 20 20 20 f2 48  |n")...(       .H|
000029f0  69 28 45 64 69 74 57 25  2c 31 35 29 3a f2 4c 69  |i(EditW%,15):.Li|
00002a00  28 45 64 69 74 57 25 2c  31 34 29 0d 10 d6 05 cb  |(EditW%,14).....|
00002a10  0d 10 e0 23 f2 6d 6f 76  65 73 28 30 29 3a f2 66  |...#.moves(0):.f|
00002a20  72 3a 4f 70 6d 6f 64 65  25 3d 6d 25 3a 50 74 72  |r:Opmode%=m%:Ptr|
00002a30  25 3d 30 0d 10 ea 05 e1  0d 10 f4 04 0d 10 fe 10  |%=0.............|
00002a40  dd f2 6f 70 65 6e 47 57  28 69 25 29 0d 11 08 28  |..openGW(i%)...(|
00002a50  f2 55 69 28 45 64 69 74  57 25 2c 31 32 2c a4 47  |.Ui(EditW%,12,.G|
00002a60  65 74 53 74 72 69 6e 67  28 47 57 25 28 69 25 29  |etString(GW%(i%)|
00002a70  2c 30 29 29 0d 11 12 41  c8 99 22 57 69 6d 70 5f  |,0))...A.."Wimp_|
00002a80  47 65 74 43 61 72 65 74  50 6f 73 69 74 69 6f 6e  |GetCaretPosition|
00002a90  22 2c 2c 42 25 3a e7 21  42 25 3d 45 64 69 74 57  |",,B%:.!B%=EditW|
00002aa0  25 f2 53 65 74 43 61 72  65 74 28 45 64 69 74 57  |%.SetCaret(EditW|
00002ab0  25 2c 31 32 29 0d 11 1c  28 53 70 61 63 65 25 3d  |%,12)...(Space%=|
00002ac0  32 32 2d 28 69 25 2a 35  29 3a e7 53 70 61 63 65  |22-(i%*5):.Space|
00002ad0  25 3d 31 37 53 70 61 63  65 25 3d 31 36 0d 11 26  |%=17Space%=16..&|
00002ae0  22 f2 6d 65 74 65 72 3a  e7 4d 6f 64 65 4f 6b 25  |".meter:.ModeOk%|
00002af0  f2 4f 70 65 6e 57 28 47  57 25 28 69 25 29 29 0d  |.OpenW(GW%(i%)).|
00002b00  11 30 0f e7 69 25 3d 57  6f 70 65 6e 25 e1 0d 11  |.0..i%=Wopen%...|
00002b10  3a 14 f2 48 69 28 45 64  69 74 57 25 2c 69 25 2b  |:..Hi(EditW%,i%+|
00002b20  37 29 0d 11 44 0c e7 57  6f 70 65 6e 25 8c 0d 11  |7)..D..Wopen%...|
00002b30  4e 2e 20 f2 43 6c 6f 73  65 57 28 47 57 25 28 57  |N. .CloseW(GW%(W|
00002b40  6f 70 65 6e 25 29 29 3a  f2 4c 69 28 45 64 69 74  |open%)):.Li(Edit|
00002b50  57 25 2c 57 6f 70 65 6e  25 2b 37 29 0d 11 58 24  |W%,Wopen%+7)..X$|
00002b60  20 e3 6e 25 3d 31 31 b8  31 32 3a f2 53 69 28 47  | .n%=11.12:.Si(G|
00002b70  57 25 28 57 6f 70 65 6e  25 29 2c 6e 25 29 3a ed  |W%(Wopen%),n%):.|
00002b80  0d 11 62 05 cd 0d 11 6c  0d 57 6f 70 65 6e 25 3d  |..b....l.Wopen%=|
00002b90  69 25 0d 11 76 0d c8 8e  57 6f 70 65 6e 25 ca 0d  |i%..v...Wopen%..|
00002ba0  11 80 24 20 c9 31 3a 57  78 25 3d 34 3a 57 79 25  |..$ .1:Wx%=4:Wy%|
00002bb0  3d 34 3a 59 62 25 3d 2d  34 30 30 3a 58 72 25 3d  |=4:Yb%=-400:Xr%=|
00002bc0  34 30 30 0d 11 8a 24 20  c9 32 3a 57 78 25 3d 35  |400...$ .2:Wx%=5|
00002bd0  3a 57 79 25 3d 34 3a 59  62 25 3d 2d 34 30 30 3a  |:Wy%=4:Yb%=-400:|
00002be0  58 72 25 3d 34 38 30 0d  11 94 24 20 c9 33 3a 57  |Xr%=480...$ .3:W|
00002bf0  78 25 3d 35 3a 57 79 25  3d 35 3a 59 62 25 3d 2d  |x%=5:Wy%=5:Yb%=-|
00002c00  34 38 30 3a 58 72 25 3d  34 38 30 0d 11 9e 24 20  |480:Xr%=480...$ |
00002c10  c9 34 3a 57 78 25 3d 36  3a 57 79 25 3d 35 3a 59  |.4:Wx%=6:Wy%=5:Y|
00002c20  62 25 3d 2d 34 38 30 3a  58 72 25 3d 35 36 30 0d  |b%=-480:Xr%=560.|
00002c30  11 a8 05 cb 0d 11 b2 0f  77 69 63 6f 6e 25 21 30  |........wicon%!0|
00002c40  3d 38 30 0d 11 bc 18 77  69 63 6f 6e 25 21 34 3d  |=80....wicon%!4=|
00002c50  2d 38 30 2a 28 31 2b 57  79 25 29 0d 11 c6 17 77  |-80*(1+Wy%)....w|
00002c60  69 63 6f 6e 25 21 38 3d  38 30 2a 28 31 2b 57 78  |icon%!8=80*(1+Wx|
00002c70  25 29 0d 11 d0 11 77 69  63 6f 6e 25 21 31 32 3d  |%)....wicon%!12=|
00002c80  2d 38 30 0d 11 da 18 77  69 63 6f 6e 25 21 31 36  |-80....wicon%!16|
00002c90  3d 25 31 30 30 30 30 30  30 31 30 0d 11 e4 15 77  |=%100000010....w|
00002ca0  69 63 6f 6e 25 21 32 30  3d 73 63 72 65 65 6e 25  |icon%!20=screen%|
00002cb0  0d 11 ee 14 77 69 63 6f  6e 25 21 32 34 3d 53 61  |....wicon%!24=Sa|
00002cc0  72 65 61 25 0d 11 f8 0f  77 69 63 6f 6e 25 21 32  |rea%....wicon%!2|
00002cd0  38 3d 30 0d 12 02 05 e1  0d 12 0c 04 0d 12 16 0f  |8=0.............|
00002ce0  dd f2 73 68 61 70 65 28  73 25 29 0d 12 20 09 c8  |..shape(s%).. ..|
00002cf0  8e 73 25 ca 0d 12 2a 18  20 c9 37 3a e7 57 6f 70  |.s%...*. .7:.Wop|
00002d00  65 6e 25 f2 65 78 57 28  33 36 30 29 0d 12 34 36  |en%.exW(360)..46|
00002d10  20 7f 3a e7 53 68 61 70  65 25 3d 37 f2 65 78 57  | .:.Shape%=7.exW|
00002d20  28 32 35 30 29 3a c8 99  22 57 69 6d 70 5f 53 65  |(250):.."Wimp_Se|
00002d30  74 43 61 72 65 74 50 6f  73 69 74 69 6f 6e 22 2c  |tCaretPosition",|
00002d40  2d 31 0d 12 3e 05 cb 0d  12 48 1d e7 53 68 61 70  |-1..>....H..Shap|
00002d50  65 25 f2 4c 69 28 45 64  69 74 57 25 2c 53 68 61  |e%.Li(EditW%,Sha|
00002d60  70 65 25 29 0d 12 52 1c  f2 48 69 28 45 64 69 74  |pe%)..R..Hi(Edit|
00002d70  57 25 2c 73 25 29 3a 53  68 61 70 65 25 3d 73 25  |W%,s%):Shape%=s%|
00002d80  0d 12 5c 05 e1 0d 12 66  04 0d 12 70 0d dd f2 65  |..\....f...p...e|
00002d90  78 57 28 68 25 29 0d 12  7a 2a 21 42 25 3d 45 64  |xW(h%)..z*!B%=Ed|
00002da0  69 74 57 25 3a c8 99 22  57 69 6d 70 5f 47 65 74  |itW%:.."Wimp_Get|
00002db0  57 69 6e 64 6f 77 53 74  61 74 65 22 2c 2c 42 25  |WindowState",,B%|
00002dc0  0d 12 84 32 42 25 21 38  3d 42 25 21 31 36 2d 68  |...2B%!8=B%!16-h|
00002dd0  25 3a 42 25 21 32 38 3d  2d 31 3a c8 99 22 57 69  |%:B%!28=-1:.."Wi|
00002de0  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
00002df0  42 25 0d 12 8e 05 e1 0d  12 98 04 0d 12 a2 0f dd  |B%..............|
00002e00  f2 6c 65 61 72 6e 28 62  25 29 0d 12 ac 1b 45 78  |.learn(b%)....Ex|
00002e10  74 44 25 3d 30 3a f2 55  73 69 28 45 64 69 74 57  |tD%=0:.Usi(EditW|
00002e20  25 2c 31 34 29 0d 12 b6  09 c8 8e 62 25 ca 0d 12  |%,14)......b%...|
00002e30  c0 19 20 c9 30 3a 4c 65  61 72 6e 25 3d 30 3a 21  |.. .0:Learn%=0:!|
00002e40  44 65 6d 6f 25 3d 30 0d  12 ca 2b 20 c9 31 2c 34  |Demo%=0...+ .1,4|
00002e50  3a f2 53 69 28 47 57 25  28 57 6f 70 65 6e 25 29  |:.Si(GW%(Wopen%)|
00002e60  2c 31 32 29 3a f2 44 6d  28 53 6d 65 6e 75 25 2c  |,12):.Dm(Smenu%,|
00002e70  30 29 0d 12 d4 34 20 20  20 20 20 20 20 20 20 f2  |0)...4         .|
00002e80  53 69 28 45 64 69 74 57  25 2c 31 34 29 3a f2 4c  |Si(EditW%,14):.L|
00002e90  69 28 45 64 69 74 57 25  2c 31 35 29 3a 4c 65 61  |i(EditW%,15):Lea|
00002ea0  72 6e 25 3d 2d 31 0d 12  de 2e 20 20 20 20 20 20  |rn%=-1....      |
00002eb0  20 20 20 e7 62 25 3d 34  21 44 65 6d 6f 25 3d 30  |   .b%=4!Demo%=0|
00002ec0  3a f2 72 65 73 65 74 3a  e7 41 24 3d 22 22 f2 61  |:.reset:.A$="".a|
00002ed0  28 2d 31 29 0d 12 e8 2d  20 c9 32 3a f2 45 6d 28  |(-1)...- .2:.Em(|
00002ee0  53 6d 65 6e 75 25 2c 30  29 3a f2 48 69 28 45 64  |Smenu%,0):.Hi(Ed|
00002ef0  69 74 57 25 2c 31 35 29  3a 4c 65 61 72 6e 25 3d  |itW%,15):Learn%=|
00002f00  30 0d 12 f2 36 20 20 20  20 20 20 20 e7 21 44 65  |0...6       .!De|
00002f10  6d 6f 25 3e 30 f2 55 73  69 28 47 57 25 28 57 6f  |mo%>0.Usi(GW%(Wo|
00002f20  70 65 6e 25 29 2c 31 32  29 3a 45 78 74 44 25 3d  |pen%),12):ExtD%=|
00002f30  4d 6f 76 65 25 2a 32 0d  12 fc 05 cb 0d 13 06 07  |Move%*2.........|
00002f40  f2 41 69 0d 13 10 05 e1  0d 13 1a 04 0d 13 24 14  |.Ai...........$.|
00002f50  dd f2 70 6c 6f 74 28 62  25 2c 78 25 2c 79 25 29  |..plot(b%,x%,y%)|
00002f60  0d 13 2e 21 ea 63 65 6c  6c 25 2c 73 25 2c 6c 25  |...!.cell%,s%,l%|
00002f70  2c 68 25 3a 6c 25 3d 31  36 30 3a 68 25 3d 31 36  |,h%:l%=160:h%=16|
00002f80  30 0d 13 38 37 78 25 3d  28 78 25 2d 4f 78 25 29  |0..87x%=(x%-Ox%)|
00002f90  81 38 30 3a 79 25 3d 28  4f 79 25 2d 79 25 29 81  |.80:y%=(Oy%-y%).|
00002fa0  38 30 3a 63 65 6c 6c 25  3d 78 25 2d 31 2b 28 28  |80:cell%=x%-1+((|
00002fb0  79 25 2d 31 29 2a 36 29  0d 13 42 09 c8 8e 62 25  |y%-1)*6)..B...b%|
00002fc0  ca 0d 13 4c 15 20 c9 31  3a e7 43 25 28 63 65 6c  |...L. .1:.C%(cel|
00002fd0  6c 25 29 3d 37 e1 0d 13  56 43 20 20 20 20 20 20  |l%)=7...VC      |
00002fe0  20 e7 43 25 28 63 65 6c  6c 25 29 3e 37 63 65 6c  | .C%(cell%)>7cel|
00002ff0  6c 25 3d 43 25 28 63 65  6c 6c 25 29 2d 31 30 3a  |l%=C%(cell%)-10:|
00003000  78 25 3d 63 65 6c 6c 25  83 36 2b 31 3a 79 25 3d  |x%=cell%.6+1:y%=|
00003010  63 65 6c 6c 25 81 36 2b  31 0d 13 60 23 20 20 20  |cell%.6+1..`#   |
00003020  20 20 20 20 73 25 3d 43  25 28 63 65 6c 6c 25 29  |    s%=C%(cell%)|
00003030  3a f2 63 28 37 2c 63 65  6c 6c 25 29 0d 13 6a 29  |:.c(7,cell%)..j)|
00003040  20 c9 34 3a e7 ac a4 65  64 67 65 28 78 25 2c 79  | .4:...edge(x%,y|
00003050  25 2c 63 65 6c 6c 25 29  d4 31 2c 2d 31 35 2c 34  |%,cell%).1,-15,4|
00003060  30 2c 32 3a e1 0d 13 74  21 20 20 20 20 20 20 20  |0,2:...t!       |
00003070  73 25 3d 53 68 61 70 65  25 3a f2 63 28 73 25 2c  |s%=Shape%:.c(s%,|
00003080  63 65 6c 6c 25 29 0d 13  7e 1b cb 3a 78 25 3d 78  |cell%)..~..:x%=x|
00003090  25 2a 38 30 3a 79 25 3d  28 79 25 2b 31 29 2a 38  |%*80:y%=(y%+1)*8|
000030a0  30 0d 13 88 0e e7 73 25  3d 32 6c 25 3d 38 30 0d  |0.....s%=2l%=80.|
000030b0  13 92 0e e7 73 25 3d 33  68 25 3d 38 30 0d 13 9c  |....s%=3h%=80...|
000030c0  14 e7 73 25 3d 34 6c 25  3d 38 30 3a 68 25 3d 38  |..s%=4l%=80:h%=8|
000030d0  30 0d 13 a6 2c c8 99 26  34 30 30 44 31 2c 47 57  |0...,..&400D1,GW|
000030e0  25 28 57 6f 70 65 6e 25  29 2c 78 25 2c 2d 79 25  |%(Wopen%),x%,-y%|
000030f0  2c 78 25 2b 6c 25 2c 2d  79 25 2b 68 25 0d 13 b0  |,x%+l%,-y%+h%...|
00003100  1f f2 6d 65 74 65 72 3a  45 78 74 44 25 3d 30 3a  |..meter:ExtD%=0:|
00003110  e7 41 24 3d 22 22 f2 61  28 2d 31 29 0d 13 ba 05  |.A$="".a(-1)....|
00003120  e1 0d 13 c4 04 0d 13 ce  14 dd a4 65 64 67 65 28  |...........edge(|
00003130  78 25 2c 79 25 2c 63 25  29 0d 13 d8 08 ea 6f 6b  |x%,y%,c%).....ok|
00003140  25 0d 13 e2 0d c8 8e 53  68 61 70 65 25 ca 0d 13  |%......Shape%...|
00003150  ec 2b 20 c9 31 2c 35 2c  36 3a e7 78 25 3e 30 e7  |.+ .1,5,6:.x%>0.|
00003160  78 25 3c 57 78 25 e7 79  25 3e 31 e7 79 25 3c 3d  |x%<Wx%.y%>1.y%<=|
00003170  57 79 25 6f 6b 25 3d 2d  31 0d 13 f6 28 20 c9 32  |Wy%ok%=-1...( .2|
00003180  3a e7 78 25 3e 30 e7 78  25 3c 3d 57 78 25 e7 79  |:.x%>0.x%<=Wx%.y|
00003190  25 3e 31 e7 79 25 3c 3d  57 79 25 6f 6b 25 3d 2d  |%>1.y%<=Wy%ok%=-|
000031a0  31 0d 14 00 28 20 c9 33  3a e7 78 25 3e 30 e7 78  |1...( .3:.x%>0.x|
000031b0  25 3c 57 78 25 e7 79 25  3e 3d 31 e7 79 25 3c 3d  |%<Wx%.y%>=1.y%<=|
000031c0  57 79 25 6f 6b 25 3d 2d  31 0d 14 0a 29 20 c9 34  |Wy%ok%=-1...) .4|
000031d0  3a e7 78 25 3e 30 e7 78  25 3c 3d 57 78 25 e7 79  |:.x%>0.x%<=Wx%.y|
000031e0  25 3e 3d 31 e7 79 25 3c  3d 57 79 25 6f 6b 25 3d  |%>=1.y%<=Wy%ok%=|
000031f0  2d 31 0d 14 14 05 cb 0d  14 1e 16 e7 6f 6b 25 8c  |-1..........ok%.|
00003200  3d a4 66 69 74 28 63 25  29 20 8b 3d 30 0d 14 28  |=.fit(c%) .=0..(|
00003210  04 0d 14 32 0d dd a4 66  69 74 28 63 25 29 0d 14  |...2...fit(c%)..|
00003220  3c 08 ea 6f 6b 25 0d 14  46 0d c8 8e 53 68 61 70  |<..ok%..F...Shap|
00003230  65 25 ca 0d 14 50 38 20  c9 31 3a e7 43 25 28 63  |e%...P8 .1:.C%(c|
00003240  25 29 3d 37 e7 43 25 28  63 25 2d 36 29 3d 37 e7  |%)=7.C%(c%-6)=7.|
00003250  43 25 28 63 25 2d 35 29  3d 37 e7 43 25 28 63 25  |C%(c%-5)=7.C%(c%|
00003260  2b 31 29 3d 37 6f 6b 25  3d 2d 31 0d 14 5a 22 20  |+1)=7ok%=-1..Z" |
00003270  c9 32 3a e7 43 25 28 63  25 29 3d 37 e7 43 25 28  |.2:.C%(c%)=7.C%(|
00003280  63 25 2d 36 29 3d 37 6f  6b 25 3d 2d 31 0d 14 64  |c%-6)=7ok%=-1..d|
00003290  22 20 c9 33 3a e7 43 25  28 63 25 29 3d 37 e7 43  |" .3:.C%(c%)=7.C|
000032a0  25 28 63 25 2b 31 29 3d  37 6f 6b 25 3d 2d 31 0d  |%(c%+1)=7ok%=-1.|
000032b0  14 6e 17 20 c9 34 3a e7  43 25 28 63 25 29 3d 37  |.n. .4:.C%(c%)=7|
000032c0  6f 6b 25 3d 2d 31 0d 14  78 2d 20 c9 35 3a e7 43  |ok%=-1..x- .5:.C|
000032d0  25 28 63 25 29 3d 37 e7  43 25 28 63 25 2d 36 29  |%(c%)=7.C%(c%-6)|
000032e0  3d 37 e7 43 25 28 63 25  2d 35 29 3d 37 6f 6b 25  |=7.C%(c%-5)=7ok%|
000032f0  3d 2d 31 0d 14 82 2d 20  c9 36 3a e7 43 25 28 63  |=-1...- .6:.C%(c|
00003300  25 29 3d 37 e7 43 25 28  63 25 2d 35 29 3d 37 e7  |%)=7.C%(c%-5)=7.|
00003310  43 25 28 63 25 2b 31 29  3d 37 6f 6b 25 3d 2d 31  |C%(c%+1)=7ok%=-1|
00003320  0d 14 8c 05 cb 0d 14 96  08 3d 6f 6b 25 0d 14 a0  |.........=ok%...|
00003330  04 0d 14 aa 0b dd f2 6d  65 74 65 72 0d 14 b4 16  |.......meter....|
00003340  ea 6e 25 2c 63 25 2c 78  31 25 2c 78 32 25 2c 78  |.n%,c%,x1%,x2%,x|
00003350  33 25 0d 14 be 1b e3 6e  25 3d 30 b8 32 39 3a e7  |3%.....n%=0.29:.|
00003360  43 25 28 6e 25 29 3d 37  63 25 2b 3d 31 0d 14 c8  |C%(n%)=7c%+=1...|
00003370  2e ed 3a e7 63 25 3d 53  70 61 63 65 25 f2 55 73  |..:.c%=Space%.Us|
00003380  69 28 45 64 69 74 57 25  2c 31 35 29 8b f2 53 69  |i(EditW%,15)..Si|
00003390  28 45 64 69 74 57 25 2c  31 35 29 0d 14 d2 2d e3  |(EditW%,15)...-.|
000033a0  6e 25 3d 35 b8 32 39 88  36 3a e7 43 25 28 6e 25  |n%=5.29.6:.C%(n%|
000033b0  29 3c 3e 37 78 31 25 3d  2d 31 3a 78 32 25 3d 2d  |)<>7x1%=-1:x2%=-|
000033c0  31 3a 78 33 25 3d 2d 31  0d 14 dc 21 ed 3a e3 6e  |1:x3%=-1...!.:.n|
000033d0  25 3d 34 b8 32 32 88 36  3a e7 43 25 28 6e 25 29  |%=4.22.6:.C%(n%)|
000033e0  3c 3e 37 78 31 25 3d 2d  31 0d 14 e6 27 ed 3a e3  |<>7x1%=-1...'.:.|
000033f0  6e 25 3d 32 34 b8 32 38  3a e7 43 25 28 6e 25 29  |n%=24.28:.C%(n%)|
00003400  3c 3e 37 78 31 25 3d 2d  31 3a 78 32 25 3d 2d 31  |<>7x1%=-1:x2%=-1|
00003410  0d 14 f0 26 ed 3a e7 78  31 25 f2 53 69 28 45 64  |...&.:.x1%.Si(Ed|
00003420  69 74 57 25 2c 38 29 8b  f2 55 73 69 28 45 64 69  |itW%,8)..Usi(Edi|
00003430  74 57 25 2c 38 29 0d 14  fa 24 e7 78 32 25 f2 53  |tW%,8)...$.x2%.S|
00003440  69 28 45 64 69 74 57 25  2c 39 29 8b f2 55 73 69  |i(EditW%,9)..Usi|
00003450  28 45 64 69 74 57 25 2c  39 29 0d 15 04 26 e7 78  |(EditW%,9)...&.x|
00003460  33 25 f2 53 69 28 45 64  69 74 57 25 2c 31 30 29  |3%.Si(EditW%,10)|
00003470  8b f2 55 73 69 28 45 64  69 74 57 25 2c 31 30 29  |..Usi(EditW%,10)|
00003480  0d 15 0e 05 e1 0d 15 18  04 0d 15 22 0e dd f2 63  |..........."...c|
00003490  28 73 25 2c 63 25 29 0d  15 2c 09 c8 8e 73 25 ca  |(s%,c%)..,...s%.|
000034a0  0d 15 36 1f 20 c9 30 3a  73 25 3d 43 25 28 63 25  |..6. .0:s%=C%(c%|
000034b0  29 3a 43 25 28 63 25 29  3d 30 3a 6e 25 3d 30 0d  |):C%(c%)=0:n%=0.|
000034c0  15 40 1f 20 c9 37 3a 73  25 3d 43 25 28 63 25 29  |.@. .7:s%=C%(c%)|
000034d0  3a 43 25 28 63 25 29 3d  37 3a 6e 25 3d 37 0d 15  |:C%(c%)=7:n%=7..|
000034e0  4a 19 20 7f 3a 43 25 28  63 25 29 3d 73 25 3a 6e  |J. .:C%(c%)=s%:n|
000034f0  25 3d 63 25 2b 31 30 0d  15 54 05 cb 0d 15 5e 09  |%=c%+10..T....^.|
00003500  c8 8e 73 25 ca 0d 15 68  2b 20 c9 31 3a 43 25 28  |..s%...h+ .1:C%(|
00003510  63 25 2d 36 29 3d 6e 25  3a 43 25 28 63 25 2d 35  |c%-6)=n%:C%(c%-5|
00003520  29 3d 6e 25 3a 43 25 28  63 25 2b 31 29 3d 6e 25  |)=n%:C%(c%+1)=n%|
00003530  0d 15 72 13 20 c9 32 3a  43 25 28 63 25 2d 36 29  |..r. .2:C%(c%-6)|
00003540  3d 6e 25 0d 15 7c 13 20  c9 33 3a 43 25 28 63 25  |=n%..|. .3:C%(c%|
00003550  2b 31 29 3d 6e 25 0d 15  86 1f 20 c9 35 3a 43 25  |+1)=n%.... .5:C%|
00003560  28 63 25 2d 36 29 3d 6e  25 3a 43 25 28 63 25 2d  |(c%-6)=n%:C%(c%-|
00003570  35 29 3d 6e 25 0d 15 90  1f 20 c9 36 3a 43 25 28  |5)=n%.... .6:C%(|
00003580  63 25 2d 35 29 3d 6e 25  3a 43 25 28 63 25 2b 31  |c%-5)=n%:C%(c%+1|
00003590  29 3d 6e 25 0d 15 9a 05  cb 0d 15 a4 05 e1 0d 15  |)=n%............|
000035a0  ae 04 0d 15 b8 0b dd f2  63 6c 65 61 72 0d 15 c2  |........clear...|
000035b0  15 43 25 28 29 3d 37 3a  f2 6d 65 74 65 72 3a f2  |.C%()=7:.meter:.|
000035c0  66 72 0d 15 cc 1f e3 6e  25 3d 31 b8 34 3a f2 55  |fr.....n%=1.4:.U|
000035d0  69 28 47 57 25 28 6e 25  29 2c 30 2c 22 22 29 3a  |i(GW%(n%),0,""):|
000035e0  ed 0d 15 d6 3b f2 55 69  28 45 64 69 74 57 25 2c  |....;.Ui(EditW%,|
000035f0  31 32 2c 22 22 29 3a f2  55 69 28 53 61 76 65 57  |12,""):.Ui(SaveW|
00003600  25 2c 31 2c 22 53 6c 69  63 6b 66 69 6c 65 22 29  |%,1,"Slickfile")|
00003610  3a 4c 24 3d 22 22 3a f2  61 28 30 29 0d 15 e0 05  |:L$="":.a(0)....|
00003620  e1 0d 15 ea 04 0d 15 f4  08 dd f2 66 72 0d 15 fe  |...........fr...|
00003630  27 c8 99 26 34 30 30 44  31 2c 47 57 25 28 57 6f  |'..&400D1,GW%(Wo|
00003640  70 65 6e 25 29 2c 38 30  2c 59 62 25 2c 58 72 25  |pen%),80,Yb%,Xr%|
00003650  2c 2d 38 30 0d 16 08 05  e1 0d 16 12 04 0d 16 1c  |,-80............|
00003660  0e dd f2 61 28 64 61 74  61 25 29 0d 16 26 07 ea  |...a(data%)..&..|
00003670  6e 25 0d 16 30 0c c8 8e  64 61 74 61 25 ca 0d 16  |n%..0...data%...|
00003680  3a 10 20 c9 20 b9 20 3a  41 24 3d 22 2a 22 0d 16  |:. . . :A$="*"..|
00003690  44 0e 20 c9 20 a3 3a 41  24 3d 22 22 0d 16 4e 05  |D. . .:A$=""..N.|
000036a0  cb 0d 16 58 09 c8 8e 4c  24 ca 0d 16 62 2f 20 c9  |...X...L$...b/ .|
000036b0  22 22 3a e3 6e 25 3d 31  b8 34 3a f2 74 69 74 6c  |"":.n%=1.4:.titl|
000036c0  65 28 47 57 25 28 6e 25  29 2c a4 64 65 66 61 75  |e(GW%(n%),.defau|
000036d0  6c 74 28 6e 25 29 29 3a  ed 0d 16 6c 26 20 7f 3a  |lt(n%)):...l& .:|
000036e0  e3 6e 25 3d 31 b8 34 3a  f2 74 69 74 6c 65 28 47  |.n%=1.4:.title(G|
000036f0  57 25 28 6e 25 29 2c 4c  24 2b 41 24 29 3a ed 0d  |W%(n%),L$+A$):..|
00003700  16 76 05 cb 0d 16 80 05  e1 0d 16 8a 04 0d 16 94  |.v..............|
00003710  11 dd a4 64 65 66 61 75  6c 74 28 6e 25 29 0d 16  |...default(n%)..|
00003720  9e 09 c8 8e 6e 25 ca 0d  16 a8 11 20 c9 31 3a 74  |....n%..... .1:t|
00003730  24 3d 22 34 78 34 20 22  0d 16 b2 11 20 c9 32 3a  |$="4x4 ".... .2:|
00003740  74 24 3d 22 35 78 34 20  22 0d 16 bc 11 20 c9 33  |t$="5x4 ".... .3|
00003750  3a 74 24 3d 22 35 78 35  20 22 0d 16 c6 11 20 c9  |:t$="5x5 ".... .|
00003760  34 3a 74 24 3d 22 36 78  35 20 22 0d 16 d0 05 cb  |4:t$="6x5 ".....|
00003770  0d 16 da 0a 3d 74 24 2b  41 24 0d 16 e4 04 0d 16  |....=t$+A$......|
00003780  ee 0f dd a4 6f 6b 28 66  72 6f 6d 25 29 0d 16 f8  |....ok(from%)...|
00003790  28 ea 6f 6b 25 2c 6d 24  3a 6d 24 3d 22 59 6f 75  |(.ok%,m$:m$="You|
000037a0  20 68 61 76 65 20 75 6e  73 61 76 65 64 20 64 61  | have unsaved da|
000037b0  74 61 2c 20 22 0d 17 02  0a c8 8e a9 41 24 ca 0d  |ta, ".......A$..|
000037c0  17 0c 0d 20 c9 30 3a 6f  6b 25 3d b9 0d 17 16 10  |... .0:ok%=.....|
000037d0  20 c9 31 3a c8 8e 66 72  6f 6d 25 ca 0d 17 20 39  | .1:..from%... 9|
000037e0  20 20 20 20 20 20 20 c9  31 3a f2 72 65 70 6f 72  |       .1:.repor|
000037f0  74 28 6d 24 2b 22 64 6f  20 79 6f 75 20 73 74 69  |t(m$+"do you sti|
00003800  6c 6c 20 77 61 6e 74 20  74 6f 20 51 75 69 74 3f  |ll want to Quit?|
00003810  22 2c 31 39 29 0d 17 2a  20 20 20 20 20 20 20 20  |",19)..*        |
00003820  20 20 20 20 20 20 e7 53  65 6c 65 63 74 25 3d 31  |      .Select%=1|
00003830  6f 6b 25 3d b9 0d 17 34  31 20 20 20 20 20 20 20  |ok%=...41       |
00003840  c9 32 3a f2 72 65 70 6f  72 74 28 6d 24 2b 22 70  |.2:.report(m$+"p|
00003850  72 6f 63 65 65 64 20 77  69 74 68 20 6c 6f 61 64  |roceed with load|
00003860  3f 22 2c 31 39 29 0d 17  3e 20 20 20 20 20 20 20  |?",19)..>       |
00003870  20 20 20 20 20 20 20 e7  53 65 6c 65 63 74 25 3d  |       .Select%=|
00003880  31 6f 6b 25 3d b9 0d 17  48 0c 20 20 20 20 20 20  |1ok%=...H.      |
00003890  20 cb 0d 17 52 05 cb 0d  17 5c 08 3d 6f 6b 25 0d  | ...R....\.=ok%.|
000038a0  17 66 04 0d 17 70 15 f4  2d 2d 2d 47 61 6d 65 20  |.f...p..---Game |
000038b0  70 72 6f 63 73 2d 2d 2d  0d 17 7a 04 0d 17 84 16  |procs---..z.....|
000038c0  dd f2 73 65 6c 65 63 74  28 62 25 2c 78 25 2c 79  |..select(b%,x%,y|
000038d0  25 29 0d 17 8e 0f ea 73  24 2c 78 31 25 2c 79 31  |%).....s$,x1%,y1|
000038e0  25 0d 17 98 28 4d 25 3d  30 3a 78 31 25 3d 28 78  |%...(M%=0:x1%=(x|
000038f0  25 2d 4f 78 25 29 81 38  30 3a 79 31 25 3d 28 4f  |%-Ox%).80:y1%=(O|
00003900  79 25 2d 79 25 29 81 38  30 0d 17 a2 3a 63 65 6c  |y%-y%).80...:cel|
00003910  6c 25 3d 78 31 25 2d 31  2b 28 28 79 31 25 2d 31  |l%=x1%-1+((y1%-1|
00003920  29 2a 36 29 3a e7 43 25  28 63 65 6c 6c 25 29 3e  |)*6):.C%(cell%)>|
00003930  37 63 65 6c 6c 25 3d 43  25 28 63 65 6c 6c 25 29  |7cell%=C%(cell%)|
00003940  2d 31 30 0d 17 ac 44 50  69 65 63 65 25 3d 43 25  |-10...DPiece%=C%|
00003950  28 63 65 6c 6c 25 29 3a  78 25 3d 63 65 6c 6c 25  |(cell%):x%=cell%|
00003960  83 36 2b 31 3a 79 25 3d  63 65 6c 6c 25 81 36 2b  |.6+1:y%=cell%.6+|
00003970  31 3a 58 25 3d 78 25 2a  38 30 3a 59 25 3d 28 79  |1:X%=x%*80:Y%=(y|
00003980  25 2b 31 29 2a 38 30 0d  17 b6 0d c8 8e 50 69 65  |%+1)*80......Pie|
00003990  63 65 25 ca 0d 17 c0 11  20 c9 31 3a 73 24 3d 22  |ce%..... .1:s$="|
000039a0  45 4b 4c 4a 22 0d 17 ca  22 20 c9 32 3a e7 79 31  |EKLJ"..." .2:.y1|
000039b0  25 3c 79 25 73 24 3d 22  45 46 47 44 22 8b 73 24  |%<y%s$="EFGD".s$|
000039c0  3d 22 45 46 44 47 22 0d  17 d4 22 20 c9 33 3a e7  |="EFDG"..." .3:.|
000039d0  78 31 25 3e 78 25 73 24  3d 22 48 41 49 4a 22 8b  |x1%>x%s$="HAIJ".|
000039e0  73 24 3d 22 41 48 49 4a  22 0d 17 de 20 20 c9 34  |s$="AHIJ"...  .4|
000039f0  3a e7 62 25 3d 31 73 24  3d 22 41 42 43 44 22 8b  |:.b%=1s$="ABCD".|
00003a00  73 24 3d 22 43 44 41 42  22 0d 17 e8 11 20 c9 35  |s$="CDAB".... .5|
00003a10  3a 73 24 3d 22 45 4d 4c  4e 22 0d 17 f2 11 20 c9  |:s$="EMLN".... .|
00003a20  36 3a 73 24 3d 22 4f 4b  50 4a 22 0d 17 fc 05 cb  |6:s$="OKPJ".....|
00003a30  0d 18 06 24 43 65 6c 6c  25 3d 63 65 6c 6c 25 3a  |...$Cell%=cell%:|
00003a40  f2 73 65 71 28 73 24 2c  63 65 6c 6c 25 2c 78 25  |.seq(s$,cell%,x%|
00003a50  2c 79 25 29 0d 18 10 1f  50 74 72 25 3d 30 3a e7  |,y%)....Ptr%=0:.|
00003a60  4c 65 61 72 6e 25 3a e7  41 24 3d 22 22 f2 61 28  |Learn%:.A$="".a(|
00003a70  2d 31 29 0d 18 1a 05 e1  0d 18 24 04 0d 18 2e 16  |-1).......$.....|
00003a80  dd f2 73 65 71 28 73 24  2c 63 25 2c 78 25 2c 79  |..seq(s$,c%,x%,y|
00003a90  25 29 0d 18 38 0d ea 73  25 2c 6e 25 2c 6d 25 0d  |%)..8..s%,n%,m%.|
00003aa0  18 42 16 e3 73 25 3d 31  b8 34 3a 6e 25 3d 30 3a  |.B..s%=1.4:n%=0:|
00003ab0  e7 ac 4d 25 8c 0d 18 4c  11 20 c8 8e c1 73 24 2c  |..M%...L. ...s$,|
00003ac0  73 25 2c 31 29 ca 0d 18  56 1e 20 20 c9 22 41 22  |s%,1)...V.  ."A"|
00003ad0  3a e7 78 25 3e 31 6e 25  3d 31 3a e7 78 25 3e 32  |:.x%>1n%=1:.x%>2|
00003ae0  6e 25 3d 32 0d 18 60 35  20 20 20 20 20 20 20 20  |n%=2..`5        |
00003af0  20 20 e7 6e 25 e7 43 25  28 63 25 2d 31 29 3d 30  |  .n%.C%(c%-1)=0|
00003b00  6d 25 3d 31 3a e7 6e 25  3d 32 e7 43 25 28 63 25  |m%=1:.n%=2.C%(c%|
00003b10  2d 32 29 3d 30 6d 25 3d  32 0d 18 6a 1d 20 20 20  |-2)=0m%=2..j.   |
00003b20  20 20 20 20 20 20 20 e7  6d 25 f2 6d 6f 76 65 28  |       .m%.move(|
00003b30  32 2c 2d 6d 25 29 0d 18  74 24 20 20 c9 22 42 22  |2,-m%)..t$  ."B"|
00003b40  3a e7 78 25 3c 57 78 25  6e 25 3d 31 3a e7 78 25  |:.x%<Wx%n%=1:.x%|
00003b50  3c 57 78 25 2d 31 6e 25  3d 32 0d 18 7e 35 20 20  |<Wx%-1n%=2..~5  |
00003b60  20 20 20 20 20 20 20 20  e7 6e 25 e7 43 25 28 63  |        .n%.C%(c|
00003b70  25 2b 31 29 3d 30 6d 25  3d 31 3a e7 6e 25 3d 32  |%+1)=0m%=1:.n%=2|
00003b80  e7 43 25 28 63 25 2b 32  29 3d 30 6d 25 3d 32 0d  |.C%(c%+2)=0m%=2.|
00003b90  18 88 1c 20 20 20 20 20  20 20 20 20 20 e7 6d 25  |...          .m%|
00003ba0  f2 6d 6f 76 65 28 32 2c  6d 25 29 0d 18 92 1e 20  |.move(2,m%).... |
00003bb0  20 c9 22 43 22 3a e7 79  25 3e 31 6e 25 3d 31 3a  | ."C":.y%>1n%=1:|
00003bc0  e7 79 25 3e 32 6e 25 3d  32 0d 18 9c 36 20 20 20  |.y%>2n%=2...6   |
00003bd0  20 20 20 20 20 20 20 e7  6e 25 e7 43 25 28 63 25  |       .n%.C%(c%|
00003be0  2d 36 29 3d 30 6d 25 3d  31 3a e7 6e 25 3d 32 e7  |-6)=0m%=1:.n%=2.|
00003bf0  43 25 28 63 25 2d 31 32  29 3d 30 6d 25 3d 32 0d  |C%(c%-12)=0m%=2.|
00003c00  18 a6 1d 20 20 20 20 20  20 20 20 20 20 e7 6d 25  |...          .m%|
00003c10  f2 6d 6f 76 65 28 31 2c  2d 6d 25 29 0d 18 b0 24  |.move(1,-m%)...$|
00003c20  20 20 c9 22 44 22 3a e7  79 25 3c 57 79 25 6e 25  |  ."D":.y%<Wy%n%|
00003c30  3d 31 3a e7 79 25 3c 57  79 25 2d 31 6e 25 3d 32  |=1:.y%<Wy%-1n%=2|
00003c40  0d 18 ba 36 20 20 20 20  20 20 20 20 20 20 e7 6e  |...6          .n|
00003c50  25 e7 43 25 28 63 25 2b  36 29 3d 30 6d 25 3d 31  |%.C%(c%+6)=0m%=1|
00003c60  3a e7 6e 25 3d 32 e7 43  25 28 63 25 2b 31 32 29  |:.n%=2.C%(c%+12)|
00003c70  3d 30 6d 25 3d 32 0d 18  c4 1c 20 20 20 20 20 20  |=0m%=2....      |
00003c80  20 20 20 20 e7 6d 25 f2  6d 6f 76 65 28 31 2c 6d  |    .m%.move(1,m|
00003c90  25 29 0d 18 ce 31 20 20  c9 22 45 22 3a e7 78 25  |%)...1  ."E":.x%|
00003ca0  3e 31 e7 43 25 28 63 25  2d 31 29 3d 30 e7 43 25  |>1.C%(c%-1)=0.C%|
00003cb0  28 63 25 2d 37 29 3d 30  f2 6d 6f 76 65 28 32 2c  |(c%-7)=0.move(2,|
00003cc0  2d 31 29 0d 18 d8 32 20  20 c9 22 46 22 3a e7 78  |-1)...2  ."F":.x|
00003cd0  25 3c 57 78 25 e7 43 25  28 63 25 2b 31 29 3d 30  |%<Wx%.C%(c%+1)=0|
00003ce0  e7 43 25 28 63 25 2d 35  29 3d 30 f2 6d 6f 76 65  |.C%(c%-5)=0.move|
00003cf0  28 32 2c 31 29 0d 18 e2  41 20 20 c9 22 47 22 3a  |(2,1)...A  ."G":|
00003d00  e7 79 25 3e 32 6e 25 3d  79 25 81 32 3a e7 6e 25  |.y%>2n%=y%.2:.n%|
00003d10  e7 43 25 28 63 25 2d 31  32 29 3d 30 6d 25 3d 31  |.C%(c%-12)=0m%=1|
00003d20  3a e7 6e 25 3d 32 e7 43  25 28 63 25 2d 31 38 29  |:.n%=2.C%(c%-18)|
00003d30  3d 30 6d 25 3d 32 0d 18  ec 1d 20 20 20 20 20 20  |=0m%=2....      |
00003d40  20 20 20 20 e7 6d 25 f2  6d 6f 76 65 28 31 2c 2d  |    .m%.move(1,-|
00003d50  6d 25 29 0d 18 f6 26 20  20 c9 22 48 22 3a e7 78  |m%)...&  ."H":.x|
00003d60  25 3c 57 78 25 2d 31 6e  25 3d 31 3a e7 78 25 3c  |%<Wx%-1n%=1:.x%<|
00003d70  57 78 25 2d 32 6e 25 3d  32 0d 19 00 35 20 20 20  |Wx%-2n%=2...5   |
00003d80  20 20 20 20 20 20 20 e7  6e 25 e7 43 25 28 63 25  |       .n%.C%(c%|
00003d90  2b 32 29 3d 30 6d 25 3d  31 3a e7 6e 25 3d 32 e7  |+2)=0m%=1:.n%=2.|
00003da0  43 25 28 63 25 2b 33 29  3d 30 6d 25 3d 32 0d 19  |C%(c%+3)=0m%=2..|
00003db0  0a 1c 20 20 20 20 20 20  20 20 20 20 e7 6d 25 f2  |..          .m%.|
00003dc0  6d 6f 76 65 28 32 2c 6d  25 29 0d 19 14 31 20 20  |move(2,m%)...1  |
00003dd0  c9 22 49 22 3a e7 79 25  3e 31 e7 43 25 28 63 25  |."I":.y%>1.C%(c%|
00003de0  2d 36 29 3d 30 e7 43 25  28 63 25 2d 35 29 3d 30  |-6)=0.C%(c%-5)=0|
00003df0  f2 6d 6f 76 65 28 31 2c  2d 31 29 0d 19 1e 32 20  |.move(1,-1)...2 |
00003e00  20 c9 22 4a 22 3a e7 79  25 3c 57 79 25 e7 43 25  | ."J":.y%<Wy%.C%|
00003e10  28 63 25 2b 36 29 3d 30  e7 43 25 28 63 25 2b 37  |(c%+6)=0.C%(c%+7|
00003e20  29 3d 30 f2 6d 6f 76 65  28 31 2c 31 29 0d 19 28  |)=0.move(1,1)..(|
00003e30  34 20 20 c9 22 4b 22 3a  e7 78 25 3c 57 78 25 2d  |4  ."K":.x%<Wx%-|
00003e40  31 e7 43 25 28 63 25 2b  32 29 3d 30 e7 43 25 28  |1.C%(c%+2)=0.C%(|
00003e50  63 25 2d 34 29 3d 30 f2  6d 6f 76 65 28 32 2c 31  |c%-4)=0.move(2,1|
00003e60  29 0d 19 32 33 20 20 c9  22 4c 22 3a e7 79 25 3e  |)..23  ."L":.y%>|
00003e70  32 e7 43 25 28 63 25 2d  31 32 29 3d 30 e7 43 25  |2.C%(c%-12)=0.C%|
00003e80  28 63 25 2d 31 31 29 3d  30 f2 6d 6f 76 65 28 31  |(c%-11)=0.move(1|
00003e90  2c 2d 31 29 0d 19 3c 34  20 20 c9 22 4d 22 3a e7  |,-1)..<4  ."M":.|
00003ea0  78 25 3c 57 78 25 2d 31  e7 43 25 28 63 25 2b 31  |x%<Wx%-1.C%(c%+1|
00003eb0  29 3d 30 e7 43 25 28 63  25 2d 34 29 3d 30 f2 6d  |)=0.C%(c%-4)=0.m|
00003ec0  6f 76 65 28 32 2c 31 29  0d 19 46 32 20 20 c9 22  |ove(2,1)..F2  ."|
00003ed0  4e 22 3a e7 79 25 3c 57  79 25 e7 43 25 28 63 25  |N":.y%<Wy%.C%(c%|
00003ee0  2b 36 29 3d 30 e7 43 25  28 63 25 2b 31 29 3d 30  |+6)=0.C%(c%+1)=0|
00003ef0  f2 6d 6f 76 65 28 31 2c  31 29 0d 19 50 31 20 20  |.move(1,1)..P1  |
00003f00  c9 22 4f 22 3a e7 78 25  3e 31 e7 43 25 28 63 25  |."O":.x%>1.C%(c%|
00003f10  2d 31 29 3d 30 e7 43 25  28 63 25 2d 36 29 3d 30  |-1)=0.C%(c%-6)=0|
00003f20  f2 6d 6f 76 65 28 32 2c  2d 31 29 0d 19 5a 32 20  |.move(2,-1)..Z2 |
00003f30  20 c9 22 50 22 3a e7 79  25 3e 32 e7 43 25 28 63  | ."P":.y%>2.C%(c|
00003f40  25 2d 36 29 3d 30 e7 43  25 28 63 25 2d 31 31 29  |%-6)=0.C%(c%-11)|
00003f50  3d 30 f2 6d 6f 76 65 28  31 2c 2d 31 29 0d 19 64  |=0.move(1,-1)..d|
00003f60  06 20 cb 0d 19 6e 07 cd  3a ed 0d 19 78 05 e1 0d  |. ...n..:...x...|
00003f70  19 82 04 0d 19 8c 11 dd  f2 6d 6f 76 65 28 61 25  |.........move(a%|
00003f80  2c 64 25 29 0d 19 96 0a  ea 73 25 2c 69 25 0d 19  |,d%).....s%,i%..|
00003f90  a0 23 73 25 3d b4 28 64  25 29 2a 31 30 3a e7 20  |.#s%=.(d%)*10:. |
00003fa0  4d 61 73 6b 25 3d 4d 30  25 20 73 25 3d 73 25 2a  |Mask%=M0% s%=s%*|
00003fb0  32 0d 19 aa 04 0d 19 b4  0b 4f 78 25 3d 2d 38 30  |2........Ox%=-80|
00003fc0  0d 19 be 12 4f 79 25 3d  28 57 79 25 2b 31 29 2a  |....Oy%=(Wy%+1)*|
00003fd0  38 30 0d 19 c8 04 0d 19  d2 0e f2 74 6f 5f 73 70  |80.........to_sp|
00003fe0  72 69 74 65 0d 19 dc 3b  c8 99 26 32 45 2c 33 34  |rite...;..&2E,34|
00003ff0  2b 35 31 32 2c 53 61 72  65 61 25 2c 53 25 28 50  |+512,Sarea%,S%(P|
00004000  69 65 63 65 25 29 2c 4f  78 25 2b 58 25 2c 4f 79  |iece%),Ox%+X%,Oy|
00004010  25 2d 59 25 2c 33 2c 73  63 61 6c 65 25 2c 30 0d  |%-Y%,3,scale%,0.|
00004020  19 fa 09 c8 8e 61 25 ca  0d 1a 04 1e 20 20 c9 31  |.....a%.....  .1|
00004030  3a 69 25 3d 59 25 2b 28  64 25 2a 38 30 2d 34 2a  |:i%=Y%+(d%*80-4*|
00004040  b4 28 64 25 29 29 0d 1a  0e 18 20 20 20 20 20 20  |.(d%))....      |
00004050  20 20 e3 7a 25 3d 59 25  b8 69 25 88 73 25 0d 1a  |  .z%=Y%.i%.s%..|
00004060  22 44 20 20 20 20 20 20  20 20 20 c8 99 26 32 45  |"D         ..&2E|
00004070  2c 33 34 2b 35 31 32 2c  53 61 72 65 61 25 2c 53  |,34+512,Sarea%,S|
00004080  25 28 50 69 65 63 65 25  29 2c 4f 78 25 2b 58 25  |%(Piece%),Ox%+X%|
00004090  2c 4f 79 25 2d 7a 25 2c  33 2c 73 63 61 6c 65 25  |,Oy%-z%,3,scale%|
000040a0  2c 30 0d 1a 36 0f 20 20  20 20 20 20 20 20 20 c8  |,0..6.         .|
000040b0  96 0d 1a 40 14 20 20 20  20 20 20 20 20 20 f2 75  |...@.         .u|
000040c0  70 64 61 74 65 0d 1a 4a  17 20 20 20 20 20 20 20  |pdate..J.       |
000040d0  20 20 f2 74 6f 5f 73 70  72 69 74 65 0d 1a 54 44  |  .to_sprite..TD|
000040e0  20 20 20 20 20 20 20 20  20 c8 99 26 32 45 2c 33  |         ..&2E,3|
000040f0  34 2b 35 31 32 2c 53 61  72 65 61 25 2c 53 25 28  |4+512,Sarea%,S%(|
00004100  50 69 65 63 65 25 29 2c  4f 78 25 2b 58 25 2c 4f  |Piece%),Ox%+X%,O|
00004110  79 25 2d 7a 25 2c 33 2c  73 63 61 6c 65 25 2c 30  |y%-z%,3,scale%,0|
00004120  0d 1a 68 0d 20 20 20 20  20 20 20 20 ed 0d 1a 7c  |..h.        ...||
00004130  43 20 20 20 20 20 20 20  20 c8 99 26 32 45 2c 33  |C        ..&2E,3|
00004140  34 2b 35 31 32 2c 53 61  72 65 61 25 2c 53 25 28  |4+512,Sarea%,S%(|
00004150  50 69 65 63 65 25 29 2c  4f 78 25 2b 58 25 2c 4f  |Piece%),Ox%+X%,O|
00004160  79 25 2d 7a 25 2c 33 2c  73 63 61 6c 65 25 2c 30  |y%-z%,3,scale%,0|
00004170  0d 1a 90 13 20 20 20 20  20 20 20 20 f2 75 70 64  |....        .upd|
00004180  61 74 65 0d 1a 9a 1e 20  20 c9 32 3a 69 25 3d 58  |ate....  .2:i%=X|
00004190  25 2b 28 64 25 2a 38 30  2d 34 2a b4 28 64 25 29  |%+(d%*80-4*.(d%)|
000041a0  29 0d 1a a4 18 20 20 20  20 20 20 20 20 e3 7a 25  |)....        .z%|
000041b0  3d 58 25 b8 69 25 88 73  25 0d 1a b8 44 20 20 20  |=X%.i%.s%...D   |
000041c0  20 20 20 20 20 20 c8 99  26 32 45 2c 33 34 2b 35  |      ..&2E,34+5|
000041d0  31 32 2c 53 61 72 65 61  25 2c 53 25 28 50 69 65  |12,Sarea%,S%(Pie|
000041e0  63 65 25 29 2c 4f 78 25  2b 7a 25 2c 4f 79 25 2d  |ce%),Ox%+z%,Oy%-|
000041f0  59 25 2c 33 2c 73 63 61  6c 65 25 2c 30 0d 1a cc  |Y%,3,scale%,0...|
00004200  0f 20 20 20 20 20 20 20  20 20 c8 96 0d 1a d6 14  |.         ......|
00004210  20 20 20 20 20 20 20 20  20 f2 75 70 64 61 74 65  |         .update|
00004220  0d 1a d7 17 20 20 20 20  20 20 20 20 20 f2 74 6f  |....         .to|
00004230  5f 73 70 72 69 74 65 0d  1a ea 44 20 20 20 20 20  |_sprite...D     |
00004240  20 20 20 20 c8 99 26 32  45 2c 33 34 2b 35 31 32  |    ..&2E,34+512|
00004250  2c 53 61 72 65 61 25 2c  53 25 28 50 69 65 63 65  |,Sarea%,S%(Piece|
00004260  25 29 2c 4f 78 25 2b 7a  25 2c 4f 79 25 2d 59 25  |%),Ox%+z%,Oy%-Y%|
00004270  2c 33 2c 73 63 61 6c 65  25 2c 30 0d 1a fe 0d 20  |,3,scale%,0.... |
00004280  20 20 20 20 20 20 20 ed  0d 1b 12 43 20 20 20 20  |       ....C    |
00004290  20 20 20 20 c8 99 26 32  45 2c 33 34 2b 35 31 32  |    ..&2E,34+512|
000042a0  2c 53 61 72 65 61 25 2c  53 25 28 50 69 65 63 65  |,Sarea%,S%(Piece|
000042b0  25 29 2c 4f 78 25 2b 7a  25 2c 4f 79 25 2d 59 25  |%),Ox%+z%,Oy%-Y%|
000042c0  2c 33 2c 73 63 61 6c 65  25 2c 30 0d 1b 26 13 20  |,3,scale%,0..&. |
000042d0  20 20 20 20 20 20 20 f2  75 70 64 61 74 65 0d 1b  |       .update..|
000042e0  30 05 cb 0d 1b 3a 04 0d  1b 44 15 e7 53 6f 6e 25  |0....:...D..Son%|
000042f0  3a d4 31 2c 2d 31 30 2c  35 35 2c 31 0d 1b 4e 42  |:.1,-10,55,1..NB|
00004300  e7 4c 65 61 72 6e 25 20  44 65 6d 6f 25 3f 28 4d  |.Learn% Demo%?(M|
00004310  6f 76 65 25 2a 32 29 3d  43 65 6c 6c 25 3a 44 65  |ove%*2)=Cell%:De|
00004320  6d 6f 25 3f 28 4d 6f 76  65 25 2a 32 2b 31 29 3d  |mo%?(Move%*2+1)=|
00004330  28 61 25 2a 31 36 29 2b  28 64 25 2b 32 29 0d 1b  |(a%*16)+(d%+2)..|
00004340  58 3e f2 63 28 30 2c 43  65 6c 6c 25 29 3a e7 61  |X>.c(0,Cell%):.a|
00004350  25 3d 31 f2 63 28 50 69  65 63 65 25 2c 43 65 6c  |%=1.c(Piece%,Cel|
00004360  6c 25 2b 64 25 2a 36 29  8b f2 63 28 50 69 65 63  |l%+d%*6)..c(Piec|
00004370  65 25 2c 43 65 6c 6c 25  2b 64 25 29 0d 1b 62 23  |e%,Cell%+d%)..b#|
00004380  4d 25 3d b9 3a e7 4d 6f  76 65 25 3c 39 39 39 39  |M%=.:.Move%<9999|
00004390  f2 6d 6f 76 65 73 28 4d  6f 76 65 25 2b 31 29 0d  |.moves(Move%+1).|
000043a0  1b 6c 05 e1 0d 1b 76 04  0d 1b 80 0a dd f2 64 65  |.l....v.......de|
000043b0  6d 6f 0d 1b 8a 49 43 65  6c 6c 25 3d 44 65 6d 6f  |mo...ICell%=Demo|
000043c0  25 3f 50 74 72 25 3a 50  69 65 63 65 25 3d 43 25  |%?Ptr%:Piece%=C%|
000043d0  28 43 65 6c 6c 25 29 3a  58 25 3d 28 43 65 6c 6c  |(Cell%):X%=(Cell|
000043e0  25 83 36 2b 31 29 2a 38  30 3a 59 25 3d 28 43 65  |%.6+1)*80:Y%=(Ce|
000043f0  6c 6c 25 81 36 2b 32 29  2a 38 30 0d 1b 94 38 f2  |ll%.6+2)*80...8.|
00004400  6d 6f 76 65 28 28 44 65  6d 6f 25 3f 28 50 74 72  |move((Demo%?(Ptr|
00004410  25 2b 31 29 80 32 34 30  29 81 31 36 2c 28 44 65  |%+1).240).16,(De|
00004420  6d 6f 25 3f 28 50 74 72  25 2b 31 29 80 31 35 29  |mo%?(Ptr%+1).15)|
00004430  2d 32 29 0d 1b 9e 2a 50  74 72 25 2b 3d 32 3a e7  |-2)...*Ptr%+=2:.|
00004440  50 74 72 25 3d 45 78 74  44 25 4d 61 73 6b 25 3d  |Ptr%=ExtD%Mask%=|
00004450  4d 31 25 3a 4f 70 6d 6f  64 65 25 3d 32 0d 1b a8  |M1%:Opmode%=2...|
00004460  05 e1 0d 1b b2 04 0d 1b  bc 0b dd f2 72 65 73 65  |............rese|
00004470  74 0d 1b c6 3e 43 25 28  29 3d 43 31 25 28 29 3a  |t...>C%()=C1%():|
00004480  f2 6d 6f 76 65 73 28 30  29 3a f2 66 72 3a 4f 70  |.moves(0):.fr:Op|
00004490  6d 6f 64 65 25 3d 32 3a  50 74 72 25 3d 30 3a e7  |mode%=2:Ptr%=0:.|
000044a0  4c 65 61 72 6e 25 20 21  44 65 6d 6f 25 3d 30 0d  |Learn% !Demo%=0.|
000044b0  1b d0 05 e1 0d 1b da 04  0d 1b e4 0f dd f2 6d 6f  |..............mo|
000044c0  76 65 73 28 6d 25 29 0d  1b ee 2f f2 55 69 28 47  |ves(m%).../.Ui(G|
000044d0  57 25 28 57 6f 70 65 6e  25 29 2c 31 30 2c c3 6d  |W%(Wopen%),10,.m|
000044e0  25 29 3a 4d 6f 76 65 25  3d 6d 25 3a e7 4c 65 61  |%):Move%=m%:.Lea|
000044f0  72 6e 25 3d 30 e1 0d 1b  f8 14 e7 4d 6f 76 65 25  |rn%=0......Move%|
00004500  3d 42 79 74 65 6d 61 78  25 8c 0d 1c 02 44 20 f2  |=Bytemax%....D .|
00004510  72 65 70 6f 72 74 28 22  43 61 6e 27 74 20 61 63  |report("Can't ac|
00004520  63 65 70 74 20 6d 6f 72  65 20 6d 6f 76 65 73 2d  |cept more moves-|
00004530  61 62 6f 72 74 69 6e 67  20 4c 65 61 72 6e 21 22  |aborting Learn!"|
00004540  2c 31 36 29 3a f2 6c 65  61 72 6e 28 32 29 0d 1c  |,16):.learn(2)..|
00004550  0c 05 cd 0d 1c 16 05 e1  0d 1c 20 04 0d 1c 2a 0a  |.......... ...*.|
00004560  dd f2 73 61 76 65 0d 1c  34 1e 70 61 74 68 24 3d  |..save..4.path$=|
00004570  a4 47 65 74 53 74 72 69  6e 67 28 53 61 76 65 57  |.GetString(SaveW|
00004580  25 2c 31 29 0d 1c 3e 0f  46 25 3d ae 28 70 61 74  |%,1)..>.F%=.(pat|
00004590  68 24 29 0d 1c 48 21 e3  6e 25 3d 30 b8 32 39 3a  |h$)..H!.n%=0.29:|
000045a0  62 25 3d 43 31 25 28 6e  25 29 3a e7 62 25 3d 30  |b%=C1%(n%):.b%=0|
000045b0  62 25 3d 37 0d 1c 52 19  d5 23 46 25 2c 62 25 3a  |b%=7..R..#F%,b%:|
000045c0  ed 3a d5 23 46 25 2c 57  6f 70 65 6e 25 0d 1c 5c  |.:.#F%,Wopen%..\|
000045d0  22 f1 23 46 25 2c a4 47  65 74 53 74 72 69 6e 67  |".#F%,.GetString|
000045e0  28 47 57 25 28 57 6f 70  65 6e 25 29 2c 30 29 0d  |(GW%(Wopen%),0).|
000045f0  1c 66 0b e7 45 78 74 44  25 8c 0d 1c 70 2f 20 d5  |.f..ExtD%...p/ .|
00004600  23 46 25 2c 45 78 74 44  25 81 32 3a e3 62 25 3d  |#F%,ExtD%.2:.b%=|
00004610  30 b8 45 78 74 44 25 2d  31 3a d5 23 46 25 2c 44  |0.ExtD%-1:.#F%,D|
00004620  65 6d 6f 25 3f 62 25 3a  ed 0d 1c 7a 0c cc 3a d5  |emo%?b%:...z..:.|
00004630  23 46 25 2c 30 0d 1c 84  05 cd 0d 1c 8e 08 d9 23  |#F%,0..........#|
00004640  46 25 0d 1c 98 1e ff 28  22 53 65 74 54 79 70 65  |F%.....("SetType|
00004650  20 22 2b 70 61 74 68 24  2b 22 20 30 30 34 22 29  | "+path$+" 004")|
00004660  0d 1c a2 1f 4c 24 3d a4  47 65 74 4c 65 61 66 28  |....L$=.GetLeaf(|
00004670  70 61 74 68 24 2c 33 32  29 3a f2 61 28 30 29 0d  |path$,32):.a(0).|
00004680  1c ac 05 e1 0d 1c b6 04  0d ff                    |..........|
0000468a