MZ@ !L!This program cannot be run in DOS mode. $PELZA 7(" @p@X`.text `.data @.bssp0.idataX@@.rsrc`2@PU5$AEPh Ah A ÍvU$At{jjujjt t jл؍e[^USh@x poxDA05 A5 Aà 9S@ U1ÐUBBC BASIC for Windows 3.13aBBCWrunBBCProgvCouldn't allocate virtual memoryInsufficient memoryCOMCTL32ADVAPI32SHELL32.bbcUWVS@PhjPLhjP- @E0EE@EEEEăh @PEEj EEE@h @URE܃EPj@h hjm T uj0h @hP@.j@hhTQ4 uj0h @hq@j=1t A A Aƀ A@ A@E=$AǰIf A$Ah@ h@ h@ hSj jjjjjhS ƃ,jjjV| Lj\SjPVc  t ;LVI URQ6 "u-PPRj"Q j.Pƃj\R 9wh@QjjjjjhPƃ#jjjVsLDžDžDžƅDžDžL A+; AXPh@0AhRXL$A@0A@0AIf P$AjjVj\R)LLP5 AVhSRFVr j Dž`DždhlDžpDžtx|jhpPpx)t|)‰jMQjjhhhSh@jcËt P t&uSHSD ],$AtSP1uS)S+ jjjS$uChjTPE荥([^_U ABBCWinU WVSjPj5P AT AttEܻ 8 Axu'j P5 AMj 8 A5 ABNy18 A@tVj P5 A=L At90豨@j 35 Aj 35 A@tNy5 A5 A5P Ax A~Cannot create screen bitmapCannot create screen character mapCannot create palette&Cannot allocate clipboard memoryCannot open clipboardsequencervU|WVS] uSw]w'!w:wm w3w~ly US w<6*;wrw9t& gw  w2w x e=6EPƃj&V]$Aj#AhhVǃ$VURuj0h@h@Dhjm Auj0h@h@t&j7P5#AK]S5#AAE#AE#AW5#A0Ahbhhjj5#A jHjffG11҉ȍt 8D1tt 8D1tt 8DDF~W#AWX #Auj0h@h3@jjP5#AN 0Ahj $A1fDžBEDž$P_ i #AƒPh, AV rgS5#ApE#AEE#AjX5#A0)Ѝ 4g )‰#AjZ5#A)Ѝ )‰#Aj5#AjX5#A)Ѝ ))։5#Aj 5#AjZ5#Au)Ѝ ))։5#Ao$An$A$AjhjeURAj jjMQ:jjjj%$ APEP#A#AhP1AU$A( AM1jhS@1t&EPƃj&V]$AVUR~1PMQS ;;C;;5 $AC"A"A)P5#AjEP$"A"AP5"A="A UR ;u =]$AMQzƃj5#AV5#AVVEPN UR1 }p Ap Aw~j*p Ap Aw=p Ahjp Axp A~BF$"@#@ #@'#@0#@C#@G#@P#@T#@X#@`#@d#@h#@p#@t#@x#@#@jjjMQ}yut&lhdt&\XTt&LHDt&<$AtURVSPMQL> EPVSUR@* &uj- f|u-j f}uj f}P菜j0F߃^$D$@%@%@%@%@%@%@%@%@'@'@'@'@%@%@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@%@&@&@&@&@&@&@ &@$&@(&@0&@4&@8&@@&@D&@H&@t&vrnt&fb^t&VRNt&FB>t&62.t&&"t&t&v/j f}vj f} C~<wjm f}Cx<wjQ f}Pu=j011 uj f}uo$A@u o$A1vP舙uj0ՃhP1A^0A0A 90AtjWEP`SURƃ=n$AuhPWDt&h lQhR5#At)Pp)PQRVWH %n$ASMQ9hP1A,9E"A"AP5"A( AEP19E"A"A)P5#AjUR:"A"AP5"A&="AXMQG o$Ah9Eu"A"AP5"A!A URVSP o$A   A9r : t1;w%FJ9r: t)ʍ4;vۃFPh uj0h@hP@MQt&􋅤PƋ  A ;w?J9r: t)ʍZSQVJ F F;v􋕤RaMQ uj0h@hq@EPvRj1n!At"MQVjP蓖 o$A 1J&( A"A"AMQ"AURVSP5 o$A  o$A]j jjjMQSA u=o$AuσhP1Atj5 0A5#AN#At PQ #At PD 50A5#Aǃ#At P t W  At P 5$ AXjEPzjeURw= Au ji 5!ANy!A!A$At-jjhPjjh5$A$AL A= At&j = Au1۾vX At!PX AǃX A Nyϡl AP5l Arl A= AfDžfDžDž"VDž"VfDžfDžfDžhjh/@Pjh At QL AjjjjP Ajjh@h|jl AP{{JNyDž8 Avj jPX A PI8@L@ @@ LNyF00A8 A1۾j 45 Aj 45 ANyNDž@Ph"hjƅ$AMPjhRaƅjjh5$AC$Ajjh5$A$A;5 A;5 Awfv9yj@h A)RPhZ5 A-$AtURVSPMQEPVSURx[^_UE =t=tT&T AAt&=T A+00A'w T A T A5P Ag~~~~l|88||88888|8|<<><~~<ffffff{>88xʴʴ<~~<<~~< 0``0$ff$<~~<000000llllllll~|00` 8l8vv0`0```0`00`l88l000000`00 0`xx0p0000x 0`x 8 x8x x8`x 0```xxxx| p00000000`0``0`0 0`x000xxxxxxx00000|pxxxxxx x000000xx0x0xx000 0``0 | |8l`0x ||xx ||xx8`````|| x0p000x0p0000p00000xlxx|| |x `````8|x0lx0x| x0`0000000000`0000`v8l(C) Copyright R.T.Russell 2005 t Af 0C#Ar"A0!Ap4@r!A !A !Ao t"A"A'%!Ar"A$ 0"A1҉!A!A!A!A"A"A"A At "A!A|!A5!A!AIC5!AANDABSACSADVALASCASNATNBGET BPUT COLOURCOLORCALLCASECHAINCHR$CLEAR CLOSE CLG CLS COSCOUNT CIRCLEDATADEGDEFDIVDIMDRAWENDPROC ENDWHILE ENDCASE ENDIF END ENVELOPEELSEEVALERL ERROREOF EORERR EXPEXT ELLIPSEFORFALSE FILLFNGOTOGET$GETGOSUBGCOLHIMEM INPUTIFINKEY$INKEYINTINSTR( INSTALLLINELOMEM LOCALLEFT$(LENLETLOGLNMID$(MODEMODMOVEMOUSENEXTNOTONOFFOFORIGINOROPENINOPENOUTOPENUPOSCLIOTHERWISEPRINTPAGE PRIVATEPTR PI PLOTPOINT(PROCPOS QUIT RETURN REPEATREPORT READREMRUN RADRESTORERIGHT$(RND RECTANGLESTEPSGNSINSQRSPCSTR$STRING$(SOUNDSTOP SUMSWAP SYSTANTAB(THENTIME TINTTOTRACETRUE UNTILUSRVDUVALVPOS WHILEWHEN WAIT WIDTHHIMEMLOMEMPAGEPTRTIMENo roomJump out of rangeSize neededMultiple labelMistakeMissing ,Type mismatchNot in a functionAddress out of rangeMissing "Bad DIM statementDIM spaceNot in a FN or PROCNot in a procedureBad use of arrayBad subscriptSyntax errorEscapeDivision by zeroString too longNumber too bigNegative rootLogarithm rangeAccuracy lostExponent rangeBad MODENo such variableMissing )Bad hex or binaryNo such FN/PROCBad callIncorrect argumentsNot in a FOR loopCan't match FORBad FOR variableSTEP cannot be zeroMissing TOMissing OFNot in a subroutineON syntaxON rangeNo such lineOut of dataNot in a REPEAT loopWHEN/OTHERWISE not firstMissing #Not in a WHILE loopMissing ENDCASEOF not lastMissing ENDIFBad MOUSE variableNo such system callBad librarySize mismatchDATA not LOCALCF< us< t<,t.+<(F?<)tF@<$(r<(tފFsԊC<(uC"At~%t ~$t<#uZ<$t<%t<#t81!AډFFrC<%t<$t<#t"At N#CF<(uCCSu?u^O;T$ uV;Wu SQWSQRVWU11PSVWUQR QR [X 6[X 6]_^[XMu]B_^ZY[⦉_Y[Ku^][YXJuyzPU6jHuϨyzPU6j-uyzPU5JR$6<,uFpR5l[X]$}fEuQW ff_Y9rY y )s1)v9rωJ,$!AVyl^uP>5PU5_[u;81@utـtt ttEE닰AV=!A< ׹< 5!A< ^hPI6trà y PQ$YX$R@tցR@tӁiQ@tˁN@t2T@t2_b@tY:T@t;M@t#S@u[^5!A[A[!A[_[`a[[PQRZYXt[]$xL$T$XYZQRQT$ ;YZX5(u !A>(UR1FQW_Y xBRA>,3ʋ-!MEذ$X܉-!)<,: tIt V^ta5ˍ$)r!9r)܉:PS )V^,$ \ *r퍌$9r-!A}02<,6F2@utx2 0fϸʴڸfݴܳ۰/5!uFQR1ɀ>uF u Ұ#tQRV Y!AYT $N@tT@tށR@ut<,t ;l$uql$D$nD$ \$u ۜ $-l$ \$QR ZYD$\$xӽ,u ,<,u Fgt$B $N@tT@tR@ufYY!Aϰ!0P0Pz NVYt)rQ!A t!A^tËA,<(2,<(0F",u?' uffF F*<"t< u4T!A& STOP!!Amlltڱ谪lrҳmܱmomڱ簪p簪l6аǰlܰuܰu"z屹lnvɰפɰvyyЯ3氪ɰy$ɰxw۳ѳvɰvvvyyy,xɰy9ɰ9Ⱚ氪$u F!A׹0 (kn@C:h* 52_c/1:k ^# x-·&X2x?h)SaQYӺo%(Ny9?!I@|o|樭7EW߄v |Η@½pQv0rÊAr"At߀7À:r0F+t-tNÑڑuMULu8 ynXTLTLx7szIjq_\!AT!AL$t 9<Fy "AI1ɱv+ 8S" 8û.e)u 1ɺ t  !ǃ1SWUQRȉӽ [X ]_[Ou qxLpvȜ*{~[tt81۰ûI  KRV ^[yyS r@.seoO.v7my*{O}V~[S x'[ yۀÀr x  xÀt8HȇHr1ðJ  xtہ35ϱrS QRȉw Ht}~L~㩪*[XR[QRt*sLjQd$sx[X8 V[^~8{  QRȉ;m[XtS6  RT~QRU ZYr"yQRA ZYr  QQRȉE 57{k|Aa|{7}Z*L}\~[X[Ss [s {[ y8z 8 u "A' S 0 <,uF gY tH [SVև^[u)܉19s() t Ku9rQVWF t_^Yu  3<!A y <#t@6!Ajs< t< t tfBufJы!A) c tr16 <,t FB1 9s  9sV)ˉ׍4;QY^ 4~ 0TYx R^ h [ tKtQYVցQ9YtKu^!A) ðuˁsVʉ֋=!ANO^`!X1P H Й5 Й)q  q) tt߈ʼn1؜18s͇Ӊ(t̀ r r1xs)u!)s xu=urug y8ðv ttt݈ʼn1М19r9Ӊur (r x Z_xx8Éq tt߈ʼn1М x=ur1 t%ySȉӺ1ɽ5[ r u1QR1ɺPSȉӽ s\$D$ [Xu҃tPS,s%< s1 us1^{[X sB: v$ r1J111 ucwt WEtrV 9'u111$2F2&F1F=!AQ0Yxtu8t'@'ׇ!A) C<~tz@w Att A=!A1ty-Gq y-GiM/S[1I SW׉11{u1_[ tQ9YCMEuu  y11 ss C u uMEutEtك"Au ~1Ƀ|RMu 9˱C9|كf0. t0GCu u.GKI`u!A) IFu~.GI5uEGK1Ez@[WU_9s AQ0G YSQW1ۿ t1 u!!_Y[''''ÑCtuCՀsـ s1u sp1 t8tss9i!018r')ss̀8r s) xFuÑ u. t*"A  Ҝyʀـx91y1yچ8u91y1yڑ9u99ˉstÝÍ$);-!Ar])QD$ W|$_0陿]!A׉QYQR ]$L$'[X]QRE]Uf]E]Ux"D$\$])AsIIxs)ArA)sI8u@F)uF8tN8<=mb8uF$<>s<=s<F6@uE"A u utT A0u1ɉȉϻQ@=_YXuftKftDt ttiugAu>^"S?@1[t%u:>:uFd$uʯ1ɇ@uu $[t_YYXX_YYXX̀_ZY]Xct`P YXtUPMXtIPf @Xt

r"At;= As_^ð鰱N> :t ACt;uPVFC>:^ݰijXF< t A> @> B B/ BA BB BB BB BB BBBBBBA/AAA/A//A/BBBBBBBABABABBB/BBB/AABBBBB/B/BAB/BBB/BB BB!BB"BA#$A$$A$$A$BB%BA&BA'BA(BA)BA*BA+BA,BA-BA.BA/BA0B/1BA1B@1/>3A>3@>3BA2A<3B3B/3BA3BA4BA5BA6BA7BA8BA9BA:BA;BA<BA=BA>?/////7//7//7/7/////////02345/012345/////////////////////////////////////////////////////////////////////////////////////////=&='=(=)=+=,=-=.=/=0=4=5=6=7=8=9=:=;=<A==A=>A=?A=@A=AA=BA=CA=DA=EA=FA=G//BBBBB/BBBABABABABABABABABABABABBBBBBBBBBB/B/BBBBBBBB/BB/BBB/B/BBBBBBB/B/B/B/BBBBBBBBB//?B/B/BBBBBBBBBBBBBBB/B/BBB/B/BBBBBBBBBBBBB/B/B/ BB BB BB BB BB/BB//?B/B/B/B/B/B/B/B/BB/BBBB/B/B/B/BBB B!BB"BB#B$BB%BB&BB'7 ?$""%%## !bPHff<::==;;89f'/8XOiiiGlfmswvrfrt}~|P-H-rvwssu|~}q{yupz{zxtſĿff`С``LJ```     nfofaf_f`fWhӗїӟџ@@Ӈчӏяӧѧӿѿfӧѧӯѯf,**--++()Щ422553301 ѺѣѺѻѺѳѺѫm oa`٤٬٬٫ @ggggg•1܇އܗܟޗޟܷ޷ܿ޿݇ۯߧ߇ٯ٧܏ޏݧݷݷݗݟۿߗߟ߷ٿٿٷٷݿݿܧާܯޯA"2Rbr#3Scs$4Tdt%5Ueu(8Xhx )9Yiy 0@P`p  0 @ P ` p  0 @ P ` p  0 @ P ` p  0 @ P ` p 0@P`p 0@P`p((( (0(@(P(`(p))) )0)@)P)`)p*** *0*@*P*`*p+++ +0+@+P+`+p--- -0-@-P-`-p... .0.@.P.`.p/// /0/@/P/`/pHHH H0H@HPH`HpIII I0I@IPI`IpJJJ J0J@JPJ`JpKKK K0K@KPK`KpMMM M0M@MPM`MpNNN N0N@NPN`NpOOO O0O@OPO`Op 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p$ -6?@IR[mv ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_hijklmnopqrstuvwxyz{|}~~#A2"A#AÇ%$Aj0jR5$At%$AÉ%$A% Aj+-$A A A AE!A!AƉ"AƉ"AƉ "AƉ$"A"AƉ8"A3"A4"A ,"APSQRZZY[X u>o$AuNo$Auv%o$A%1ۇ"A ta:<o$Aua`%$Aj ]v%$Aa-uo$A uGo$Au%o$A="Au`jao$Auyo$Auo$A%o$A8%o$Aߠ#A:#AtGS$"AË#A#Ay$A#A:#A[t o$A 1ۉ"A"Au9M%$Ajt"A tP~q"A t#PjqP5#Ai$qiRq"A tPCqo$Ap%$Ajjh5$ACs%$A]%$Aj t%$A%$At%$A;$A$As "A1һ "AP%$At%$A1һ Z)‰"AOR<,tYEPPP)RYY[zRCYeְ!AK Bۼ>,t ְ-Rр>,۰ڈֈʈݱ݈İ鬙蔼0ۀ>,ڰֈx<uFnRRZY=u1(<uF,u>tM[ZYPZٝa1Ҵ ډ1ɴ ى1Ҵ 1ɴ pFR舻R_X[ZYPYZ0Otĉ:TRR~Rx_ZYڴ 0ɰ4 - &    ROY[1u<(sFºR&YZ1Èư 蝺 x-JjjjjR%$ASjzk%$AZ1ڃs#A*#A#A*#Ats,1F-*Y[1"A u2"Au r`%$Aj *h%$Aa{tݰSQ2"Au91ۇ"A t *"AY[*됐< u Ӑ 뽐PƁÉ׊G3PÇ8< t<|t?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?>=;9742/,)&#    #(,059>BGLQUZ_ejotz&.6>GOX`ir{  ,8DP\iv,<L\l| /BVj~*AXp9Tp:Yx < ^  7 ^ $ N x & T  @ q >sO8t/o4xI$oWHEM`G|Q345s8v%fgz{y,WET7I90(hi12DR6UOP&kml-$!AXFYJK on"SCGHNL.j Z VBM#`acpqrtuwx'debKERNEL32USER32GDI32COMCTL32WINMMADVAPI32COMDLG32SHELL32= AtR`%$Ajjh5 AD%$Aa A`%$Ajjh5 AnD%$Aaã A`%$AjPh5$AFD%$AD$aË"Aŀut.MID%$Aj5"Ah5$AC%$A=v uðdDevice unavailable`0"A5 S%$AjSDPPjkDY ‡%$A[)T$SP%$AjPQRSD%$AX[%$ASC%$Aa%$ARD%$AhQZ uZ uJ)GB Ѝj`%$Ah jUPrrjjQSWV5#An8(@%$AaRQSWV%$AjP5$A2BK8%$AZR/Z:,uBRZSn_%$AWw h jVWvvjjQSRP5#A?6C%$AwSQ"A YZt@P`D$ %$AjPQRSfC%$AaXtPQR%$ASB%$AZYX9A%$ARB%$A3 u#A u #A)G`%$AQS5#A,7>P5#Ar>$PPSPv>%$Aa%$AXh WV5#AQSjjP>6>$PjS>D$d$[Y ]%$A䘺r@r r1ҸÃ6`%$APjA%$AD$a rBCMCCS PSRڃ%$AUjSRQjU5#A(C jSjjjU5#A6=\$C{ rC=5v=%$AZ[Y)ЉC"C2Ë"A ŀut .BMP<,uBv<,uBj<,uB^·3Á= At*`%$Ajjh5 A?%$AaSQ0`YZX= At%`%$AP5"Ah5 AR?%$Aa9ð1`rSQ0YZ P`D$ %$AjPQRS?%$AtoaXSQ!erSQYZ t3P`D$ %$AjPQRS@%$AatX9cÇ%$A?%$At tnuq_File or path not found= t {t=u@_Bad directoryu&_Too many open filest!tt tRu^Access deniedu^Invalid channel=u^Bad deviceu^Disk faulttlu^Disk read onlyul^Device faultPt=uL^File existspt'u/^Disk full^Unknown error ^Bad commandSrX 8"AݍL"AK :K!u.0Ɂ;&C#u0[ÊK [Ã<"APP`%$A5$ AjjjjRPjQS5$ Ae>=u+==uo$Au+jd5$ A=-t%$AaYX[Ç%$A\$%$AjS=SrV 8"AݍL"AK :K!u&0Ɂ;P $XK K"K#[Ã<"APP`%$A5$ AjjjjRPjQS5$ Af=<u+<=uo$Au*jd5$ A <-t%$AaYX[Ç%$A\$%$AjS< uUQWL"A t;"At ;"At5C߿<"A tC_Y`rP 8"AݍL"A;P t#1C  z%$AP:%$AaÃ[<"A1PX"A:t":*tz:ukztezt_ztY%$A`P1BBCL$AWG G4_A"A"A$P%$APP5$Aj5$AË$#AD$D$#AD$ QRjSP ZYX][)X)`jUjj0a,;l$~L$); $} $,;l$ ~T$ );T$}T$jPSRQ5$ASXP=#AuMjt$ "APP5#Af8P5#AXD$8XvRXPjjjjjjt$jjjh jj5#A5#A t(PP5#AYX"A tP{XjBy$bhhjj5#A'j5#Az%$AXy/f f"A%"A%"Af"A%"AܸL%"Aun= A "A#A"A"A"A"A="A@1=,"A@W  @@ X X``88@@ !!!!"AfC=#AfC=#AC#A"AC#A"A"ACȢ"A|#AC<t<tA< sTt<u$Ct %"Au "A lC< t< t È%"AX%"APCc$)Al%=,"A"A%$AÀ="Atf{#Afy#Ax#AÃ%$AP5$Am%$AXX[Y #A #A1#A #A"A"A"A"A"A "AI"A"A"A "A"A "AAʉى&|#A|#AE-#AÊE-#AE-#AŠER-#AZ x]9}Y; #AQ xM9}I;#AA"A "A"A"A"A;"A|Y;"A}Q"A;"A|D;"A}StretchBlt?StretchDIBitsCTextOutA*CreateFontAAnimatePalette4CreatePalette6CreatePen:CreateRectRgnArc?CreateSolidBrushBDeleteDCEDeleteObjectKEllipseLEndDocMEndPage BitBlt`ExtFloodFillbExtTextOutAdEnterCriticalSection{ExitProcessBuildCommDCBAƬCloseƬFirstFileAƬNextFileAGetCommandLineAGetCurrentDirectoryAGetCurrentThreadClearCommError GetFileAttributesACloseHandleGetFileSizeGetFullPathNameAGetLastErrorGetLocalTime GetModuleFileNameA"GetModuleHandleA:GetProcAddressMGetStartupInfoAjGetTickCount~ƬAllocƬFreeƬLock(CopyFileAƬUnlockInitializeCriticalSectionLeaveCriticalSectionLoadLibraryA-CreateDirectoryAMoveFileA1CreateEventAPurgeComm4CreateFileA ReadFileRemoveDirectoryAResetEvent,SetCommStateKSetCurrentDirectoryAOSetEndOfFileSSetEventVSetFileAttributesAXSetFilePointer_SetLastError`SetLocalTimeuSetThreadPriorityySetUnhandledExceptionFilterSleepVirtualAllocDCreateProcessAVirtualFreeWaitForSingleObjectWriteFileUDeleteCriticalSectionWDeleteFileAAdjustWindowRectwDefFrameProcA{DefWindowProcADestroyCaretDestroyWindowDispatchMessageAEmptyClipboardEndPaintFillRectGetAsyncKeyStateGetClientRectGetClipboardDataGetCursorPosGetDCGetFocusGetKeyStateGetMessageA&GetWindowLongA)GetWindowRect3HideCaret=InvalidateRect?InvertRectIIsClipboardFormatAvailableWKillTimer\LoadCursorA`LoadIconAvMessageBeepwMessageBoxAMoveWindowOpenClipboardPeekMessageAPostMessageAPostQuitMessageRedrawWindowRegisterClassExARegisterHotKeyReleaseDCScreenToClientScrollDCSendMessageASetCaretPosSetClipboardDataSetCursorSetCursorPosSetRectEmptySetTimer2ClientToScreenShowCaretShowWindow3ClipCursorSystemParametersInfoA4CloseClipboardTranslateMDISysAccelTranslateMessageUnregisterHotKeyUpdateWindow<CopyRect@CreateCaretPCreateWindowExA BeginPaint@@OLE32.dll@@@@@@@@WINMM.DLL(@(@(@COMDLG32.DLL<@<@<@<@<@<@<@<@<@<@<@<@<@<@<@<@<@crtdll.dllP@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@GDI32.dlld@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@KERNEL32.dllx@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@x@USER32.dll: P:8::h:BBCWRUN`c( @0x3  0pppppppp3pppppppp30 33033 30 33wwwwwwwwzwp3wx 3pxpxpxpxpxpxpxpxpxpxpxpxpxwwwwwwwwwwxwwwwwwwwwwp? / :@%=10:OUT=0: Compile with 620x670 window *FONT Courier New,10 ? =17 #OUT: 0,+1)" "::" at line ";:#OUT: W(0:0,0)'" Program Terms by C.P. Doncaster shows degrees of freedom for all terms" N2" in any balanced complete ANOVA model. Model descriptors all start with" L<" the nested sampling unit from which the response is measured with or" MF" without replication. Here '(' signifies 'nested in' and '|' signifies" P" 'cross-factored with'."' KZ" A text file 'Terms.txt' will store the list of terms comprising all" Kd" main effects and interactions and their degrees of freedom. It will" ?n" also contain the data file of factor levels."''" Model:" x: : Standard models "not" "1.1"  "2.1", "2.2" N "3.1, 4.1, 6.1 or 7.1", "3.2, 4.2, 6.2 or 7.2", "3.3, 6.3 or 5.6", "3.4" ; "4.1, 3.1, 6.1 or 7.1", "4.2, 3.2, 6.2 or 7.2", "4.3" ' "5.1", "5.2", "5.3", "5.4", "5.5" H "6.3, 5.6 or 3.3", "6.4", "6.5 or 5.7", "6.6 or 5.8", "6.7 or 5.9" : 2: Alternative arrangements of standard models  "3.3, 6.3 or 5.6" "5.1", "5.2", "5.3", "5.3"  "5.4", "5.4", "5.4"  "5.5", "5.5", "5.5" O "6.3, 5.6 or 3.3", "6.5 or 5.7", "6.5 or 5.7", "6.6 or 5.8", "6.7 or 5.9" : " "" , "S(A)" 6 "S(B(A))", "S(C(B(A)))" 4@ "S(B|A)", "S(C|B|A)", "S(C|B(A))", "S(C(B|A))" (J "P(S|A)", "P(S|B|A)", "P(S|C|B|A)" [T "Q(B|P(S|A))", "Q(C|P(S|B|A))", "Q(C|B|P(S|A))", "R(C|Q(B|P(S|A)))", "Q(C|P(B|S(A)))" O^ "P(B|S(A))", "P(C(B)|S(A))", "P(C|B|S(A))", "P(C|S(B(A)))", "P(C|S(B|A))" h: r "S(B(A)|C)" F| "Q(P(S|A)|B)", "Q(P(S|B|A)|C)", "Q(B|P(S|A)|C)", "Q(P(S|A)|C|B)" @ "R(C|Q(P(S|A)|B))", "R(Q(B|P(S|A))|C)", "R(Q(P(S|A)|B)|C)" : "Q(C|P(S(A)|B))", "Q(P(B|S(A))|C)", "Q(P(S(A)|B)|C)" N "P(S(A)|B)", "P(C|S(A)|B)", "P(S(A)|B|C)", "P(S(B(A))|C)", "P(S(B|A)|C)" : sV%=100:VV%=1024: Maximum number of variables for a model, and cross-factors per variable (1024 gives up to 10) I MDL$(1,36),MV$(2,V%),MV%(V%),R$(VV%,V%),ST%(V%),KF%(V%),COVDEP%(V%) E MV$(1,#) = variable, MV$(2,#) = action, MV%(#) = levels of each ; R$(1,#) = main effects, R$(#,#) = interaction effects ^ ST%(#) = where a nested variable '(' stretches to, or where a nesting ')' stretches from > KF%(#) = number of interaction effects for a main effect a COVDEP%(#) = amount to subtract from levels of nested factor when nesting into covariate(s)  I%=0 36: MDL$(0,I%):  I%=0 36: MDL$(1,I%): 1 I%=1 20: " ";MDL$(0,I%),3),MDL$(1,I%): : OK%=:R%=33:ID%=0 J&0,R%)" Input the model number, or write out your own model formula:" 0 :REC%=1:0,R%+2)" "MDL$ DCL%=0:CR%=0 N J%=1 (MDL$) XM$=MDL$,J%,1) @b M$="(" M$="[" M$="{" M$="(":MDL$,J%,1)=M$:CL%=CL%+1 @l M$=")" M$="]" M$="}" M$=")":MDL$,J%,1)=M$:CR%=CR%+1 6v M$="\" M$="/" M$="*" M$="|":MDL$,J%,1)=M$   CL%<>CR% tzD  I%=36 1 -1 + Only round brackets and vertical line MATCH%=  J%=1 (MDL$) RCHT%=(MDL$,J%,1)):CHR%=(MDL$(1,I%),J%,1)): Check for matching '|' and '(' H (CHT%<64 CHT%>90) (CHT%<97 CHT%>122) CHT%<>CHR% MATCH%=   MATCH% ID%=I%: TBC J J%=1 (MDL$(0,I%))-(MDL$)+1: Check for all model numbers in book 1 MDL$=MDL$(0,I%),J%,(MDL$)) OK%=:ID%=I%     OK% MDL$=MDL$(1,ID%) FLIN$=" "+MDL$+" model "+MDL$(0,ID%)+" in Doncaster & Davey (2007)"  0,-1)73," ") !* ID%>0 0,-1)LIN$: DHC 4MDL$(1,0)=MDL$ ;> (LIN$)<75 0,-1)LIN$ 0,-1)LIN$,(LIN$)-40) (HL%=(MDL$):CV%=0:SPAC%=:BAD%=:M%=0 5R I%=0 V%:MV%(I%)=0:MV$(1,I%)="":MV$(2,I%)="": J\ I%=1 L%: Verify logical structure of model, and remove any spaces fMOLD%=M% pM$=MDL$,I%,1):M%=(M$) @z M%>96 M%<123 M%=M%-32: accommodate lower case letters ( Remove extraneous spaces or primes S M$=" " M$="'" M$=(9) MDL$=MDL$,I%-1)+MDL$,I%+1):SPAC%=:I%=L%: t\D N Model needs to start with a nested sampling unit, even if not replicated CCP%=0:CCPOLD%=CCP%:CCPOK%=0  J%=1 L% MM$=MDL$,J%,1)  MM$="(" CCP%=CCP%+1  MM$=")" CCP%=CCP%-1 + CCP%=0 CCPOLD%<>0 CCPOK%=CCPOK%+1 CCPOLD%=CCP%  g CCPOK%<>1 (I%=2 M$<>"(") (I%=L% M$<>")") MDL$="@("+MDL$+")":SPAC%=:REC%=2:I%=L%: t\D Q Keep tabs on open and close parenthesis for later check of matching numbers _ Only allowable characters are letters of alphabet, @, round parentheses and vertical line A (M%<64 M%>90) M%<>40 M%<>41 M%<>124 BAD%=: t\D  M%<64 M%>90 t\D a$ Check that the variable does not immediately follow another or a ')', and that it is unique 6. (MOLD%>63 MOLD%<91) MOLD%=41 BAD%=: DVD 8 J%=0 CV% B MV$(1,J%)=M$ BAD%= L V BAD% t\D 2` Fill variable MV$(2,#) with a logical action !jCV%=CV%+1:MV$(1,CV%)=M$:J%=I% t 8~J%=J%+1:A$=MDL$,J%,1):AA$=MV$(2,CV%)+A$:RA$=AA$,2) t RA$="((" RA$=")(" RA$="()" RA$="||" RA$="(|" RA$="|(" RA$="|)" BAD%= MV$(2,CV%)=MV$(2,CV%)+A$ B MDL$,J%+1,1)<>"|" MDL$,J%+1,1)<>"(" MDL$,J%+1,1)<>")"    BAD%= dND \ 1:0,R%+1)" *** Use a format compatible with the above models, checking parentheses:"  0:0,R%+2)73," "): dbD  SPAC% tTB OK%=  OK%= 0,R%+1)73," ")' : J MDL$ describes one of the twenty pre-defined models, or a DIY model. I  MV$(1,#) houses the CV% different variables in the model, each with K MV%(#) levels nested in or cross factored with according to MV$(2,#). 9 The model has length L% and contains CV% variables. ( R$() takes the effects. I2'" For each variable, give the number of its levels nested in: '('," H<" or crossed with: '|', each level of variables to its right (zero" F" if covariate):"' POUT=("Terms.txt") ZPL%=1:PL$="" Ad REC%=2 MV%(1)=1:PL$="*1":" ";MV$(1,1);MV$(2,1);9)MV%(1) n I%=REC% CV% 0xCOV$="":" ";MV$(1,I%);MV$(2,I%);:9)LEVEL$ MV%(I%)=((LEVEL$)) D MV%(I%)<1 LEVEL$<>"" MV$(2,I%),1)="(" 0,-2)"": DxE . MV%(I%)<1 MV%(I%)=-1:COV$=" covariate"  LEVEL$<>"" t~E COV$="" + MV$(2,I%)="(" MV%(I%)=1 MV%(I%)=2 9,-1)"";(MV%(I%));COV$ 0PL%=PL%*(MV%(I%)):PL$=PL$+"*"+((MV%(I%)))  7PL$=PL$,2):'" Total data points = ";PL$;" = ";PL% #OUT,(13) ) ID%=0 #OUT,(10)+"Model : "+MDL$ ` ID%>0 #OUT,(10)+"Model : "+MDL$+" (model "+MDL$(0,ID%)+" in Doncaster & Davey (2007))" 7#OUT,(10)+"Total data points = "+PL$+" = "+(PL%) COVN%=  I%=1 CV% 3" MV%(I%)<1 COVN% #OUT,(10)+"Covariates:" /, MV%(I%)<1 #OUT,(10)+MV$(1,I%):COVN%= 6 @#OUT,(10)+(13) J: 6T List the terms, each with its degrees of freedom ^: h I%=1 V% r K%=1 V% |R$(I%,K%)=""   ROW%=0:SDF%=0:NOWRIT%= .'" Effect";5+(MDL$)," ");"d.f." ##OUT,(10)+"Row, effect, d.f."  I%=CV% 1 -1 R$(1,I%)=MV$(1,I%) , MV$(2,I%)="(" nest(I%) ST%(I%)=I% 4 MV$(2,ST%(I%)),1)="|" fact(I%) KF%(I%)=1 " Ƭ d.f. and print the term  K%=1 KF%(I%) df ROW%=ROW%+1  DF%=0 4  DF%<0 1:NOWRIT%= - ROW%;" ";R$(K%,I%);:13+(MDL$),)DF% & 0 20#OUT,(10)+(ROW%)+", "+R$(K%,I%)+", "+(DF%) :SDF%=SDF%+DF% D N *X'" Total d.f. =";:13+(MDL$),)SDF% b#OUT,(10)+(13) 'l#OUT,(10)+"Total d.f. = "+(SDF%) v#OUT,(10)+"" W PL%-1 <> SDF% '" *** ERROR IN D.F.! ***":#OUT,(10)+" *** ERROR IN D.F.! ***" :  Print the data file  NOWRIT% DzH D PL%>10000 '" Writing the data file of variable levels ..."; HEADER$=""  I%=CV% 1 -1  MV%(I%)<2 dZG "HEADER$=HEADER$+", "+MV$(1,I%)  #OUT,(10)+(13) #OUT,(10)+HEADER$,3)  I%=0 PL%-1 NEST%=PL%:ROW$=""   J%=CV% 1 -1  MV%(J%)<2 T~H ( LEVEL%=1+((I%NEST%)*MV%(J%)/NEST%) *ROW$=ROW$+", "+(LEVEL%) 4NEST%=NEST%MV%(J%) > H#OUT,(10)+ROW$,3) R \#OUT,(10)+"" f PL%>10000 " done." p: z#OUT:OUT=0 4'" Run the program again (n for no)? : ";:YN$=  YN$<>"n" YN$<>"N"  : : nest(S%) = Ƭ the components within which the variable is nested J%=S%:LP%=0:RP%=0:DONE%=   MV$(2,J%)="(" LP%=LP%+1 +R$(1,S%)=R$(1,S%)+MV$(2,J%)+MV$(1,J%+1) J%=J%+1 ! MV$(2,J%),1)<>")" TnI  K%=1 (MV$(2,J%)) / MV$(2,J%),K%,1)=")" RP%=RP%+1 TdI  RP%=LP% DONE%=:KN%=K% $ . DONE% %8 R$(1,S%)=R$(1,S%)+MV$(2,J%),KN%) 6B Identify where the nesting stretches to and from L ST%(S%)=J%:ST%(J%)=S% V Replace '|' with '*' ` R$=R$(1,S%):R$(1,S%)="" j J%=1 (R$) t RBIT$=R$,J%,1) ~ RBIT$="|" RBIT$="*"  R$(1,S%)=R$(1,S%)+RBIT$    :  fact(S%) KF%(S%)=1  K%=CV% S%+1 -1 BAD%= % JJ%=1 (R$(1,S%))-(R$(1,K%)) 2 R$(1,K%)=R$(1,S%),JJ%,(R$(1,K%))) BAD%=   BAD% T^J  J%=1 KF%(K%) ; KF%(S%)=KF%(S%)+1:R$(KF%(S%),S%)=R$(1,S%)+"*"+R$(J%,K%)   ( 2 : < df F DF%=1:CCP%=0:PWR%=1 P J%=(R$(K%,I%)) 1 -1 Z RBIT$=R$(K%,I%),J%,1) $d RBIT$="(" CCP%=CCP%-1: dRJ $n RBIT$=")" CCP%=CCP%+1: dRJ x RBIT$="*" dRJ S Ƭ the number of levels for the variable and subtract an appropriate amount  JJ%=1 CV% RBIT$<>MV$(1,JJ%) dHJ + CCP%=0 MV%(JJ%)>0 SUB%=1 SUB%=0 ' CCP%=1 MV%(JJ%)<0 PWR%=PWR%*2 # DF%=DF%*((MV%(JJ%))-SUB%*PWR%)  SUB%*PWR%>1 PWR%=1    lb-6