MZ�ÿÿ¸@€º´ Í!¸LÍ!This program cannot be run in DOS mode. $PEL4bfYà n3 @@ €@… 3K@à`  H.textt  `.rsrcà@@@.reloc `@BP3Hü£�ކêŽ( }}}}*0>{o  8{ o X {?ãÿÿÿ{b}*0�{< (8T{,o %{X}{X{> (8{ o %{X}{rpŒ o %{X}*0—{< (8[{,o %{X}{Xo X{> (8{ o %{X}{rpo %{o X}*{*"}*{*"}*:( (*.rps z® ÿCrYpŒ ( s zÒo*0[  8X d  €Aíÿÿÿ97YZ 8%_d_ > €`  ÒoY <Ôÿÿÿ*0 < 8X c À?ðÿÿÿ8 8X c @<ðÿÿÿ9;YZ 8) _c_ >  €`Òo Y <Ðÿÿÿ*:( }*0H{9(?{o< €*{o((XY*0@98 {( (  €@ X 8 (X *"}*0Z:o *9{(  8 {( (  €@ r�ps z(X*:( } *f98 { (*’9{ ( 8 { (*r( } } } *0198 { ( { { oèX[X*0e9{ ( 8 { ( { { oèX[ rÇpŒ{ { oç( oX*V( } }*š98 { ({(X*059{ ( 8 { ( {(X *V( }}*š98 {({(X*059{( 8 {( {(X *{*"}*{*"}*{*š( o’("� }}*0K{X {Ži>3{Žib( �  {{( }*0!('{%{% X}œ*0>('{%{% X}cÒœ{%{% X}Òœ*0[('{%{% X}cÒœ{%{% X}cÒœ{%{% X}Òœ*0x('{%{% X}cÒœ{%{% X}cÒœ{%{% X}cÒœ{%{% X}Òœ*0R( o ŽiX('{{Ži( {{ŽiXœ%{ŽiXX}*r?{Y>s z*J(-{œ*F(-{‘*z(-{‘b{X‘`*²(-{‘b{X‘b`{X‘`*ê(-{‘b{X‘b`{X‘b`{X‘`*0ns 8^(4 :o * <Ño &8/ Y  Ø cXÑo & Ü ÿ_XÑo &8�ÿÿÿ0ÞJ{?s z{J% XT‘  À?  ÷>* ð?  _ 8 à?  _ 8 _ JX{>*88{JX‘ €?  À?* b?_X X?Àÿÿÿ ÿÿ>*JXT *0& 8{‘oX {?âÿÿÿ*Š( �}}}*&{X*0; {sA }{}{}}}*Ò{{}{{}{{}*0"{%{% Y}�q*0W {Ži %{X% }@b� {( }{{��*f{{Y�q*0U {{Y�q {{YY{{Y( {{��*0U {{�q {{Y{{YY( {{Y��*^{{�q*b{{��*j( }�}*( * * * *.rÿps z.r#ps z * **"(C*:(P}*z{9 råps z}*6{oB*v{: rps z{*F{o8s*®rCp{: rOp8 {o6( *:(P}* *6{o;*0' |{lu :*oôoð*0$ |{lu :8oÞ*0ê|{l:|(ýs*|{lu 9-|{k9 reps zoðo8s*|{lu 9|{koÞo#Xs*|{lu 9|{ks*r«p|{lo o ( s zrrñp|þo ( *:(P} * *N{ o?o;*6{ s*ZrGp{ Œ( *2 €(a*:(P}!*{!*R%{{!X}*Ž{! €; r[ps z}!*VšX{!Xšo *(`*"(a* *0 o: (ü9(c*s*²oR €@r‡p*r«poRŒ( *(`*"(a* *0 o: (ü:(c*s*²oR €@rÅp*rïpoRŒ( *(`*"(a**oRþ*s*²oR €@rp*r/poRŒ( *:(P}"* *N{"o:o@*6{"s*ZrEp{"Œ( * *(P*o9*s*rYp*{#*{$*6{#þþ*f{#? {$þ+*Ž<<}#}$*ž{#{#@{${$þ+*ª{#{#@{${$þþ+*‚u9¥q(†+*R{#Z{$ZX*0S(ƒ:rap*(„9rqp{#Œ( *r�p{#Œ{$Œ( *0g(ƒ9 (ƒ:*{#{#>*(„9*(„9*{#{$Y{#{$Yþ*fs…€%s…€&*0p sb ( }‰s })(0 s1 }+s2 }.(0 s3 }/}0s }2s }3}6rep~&þcs^(‘&rup~&þds^(‘&r}p~&þes^(‘&r�p~&þfs^(‘&r£ps…~:-þ­s^€:~:(‘&r³pþgs^(�&r¹p~&~;-þ®s^€;~;(‘&r¿pþhs^(�&rÃpþis^(�&rÛpþjs^(�&rßpþks^(�&rópþls^(�}‡rpþms^(�}ˆrpþns^(�&r%p~<-þ¯s^€<~<(�&r3pþos^(�&rQpþps^(�&rspþqs^(�&r�pþrs^(�&r¡p~=-þ°s^€=~=(�&rµps…~>-þ±s^€>~>(‘&rÉpþss^(�&rïpþts^(�&rpþus^(�&r#pþvs^(�&r/pþws^(�&r;pþxs^(�&rGpþys^(�&rYpþzs^(�&r_pþ{s^(�&rkpþ|s^(�&rupþ}s^(�&r…pþ~s^(�&r•pþs^(�&r©pþ€s^(�&rµpþ�s^(�&r¿pþ‚s^(�&rÃpþƒs^(�&rÓpþ„s^(�&r×pþ…s^(�&rÛpþ†s^(�&rYpþ‡s^(�&rëps…~?-þ²s^€?~?(‘&rõps…~@-þ³s^€@~@(‘&rýps…~A-þ´s^€A~A(‘&r ps…~B-þµs^€B~B(‘&r ps…~C-þ¶s^€C~C(‘&r ps…~D-þ·s^€D~D(‘&r# ps…~E-þ¸s^€E~E(‘&r- ps…~F-þ¹s^€F~F(‘&r7 ps…þˆs^(‘&r«ps…~G-þºs^€G~G(‘&r; ps…~H-þ»s^€H~H(‘&rC ps…~I-þ¼s^€I~I(‘&rG ps…~J-þ½s^€J~J(‘&rK ps…~K-þ¾s^€K~K(‘&rQ ps…~L-þ¿s^€L~L(‘&rU ps…~M-þÀs^€M~M(‘&r[ ps…~N-þÁs^€N~N(‘&r_ ps…~O-þÂs^€O~O(‘&re ps…~P-þÃs^€P~P(‘&ri ps…~Q-þÄs^€Q~Q(‘&ro ps…~R-þÅs^€R~R(‘&rs ps…~S-þÆs^€S~S(‘&ry ps…~T-þÇs^€T~T(‘&r ps…~U-þÈs^€U~U(‘&r‡ ps…~V-þÉs^€V~V(‘&r� ps…~W-þÊs^€W~W(‘&r• ps…~X-þËs^€X~X(‘&r� ps…~Y-þÌs^€Y~Y(‘&r£ ps…~Z-þÍs^€Z~Z(‘&r« ps…~[-þÎs^€[~[(‘&r³ ps…~\-þÏs^€\~\(‘&r¹ ps…~]-þÐs^€]~](‘&r¿ ps…~^-þÑs^€^~^(‘&rÇ ps…~_-þÒs^€_~_(‘&rË p~&~`-þÓs^€`~`(‘&rÑ ps…~a-þÔs^€a~a(‘&rÛ ps…~b-þÕs^€b~b(‘&rå p~&~c-þÖs^€c~c(‘&rë ps…~d-þ×s^€d~d(‘&*0Ós  s    8‚šr«po : o ÝXr¯p( 9-8X%Ži?Ýšo 8ÝÿÿÿÝ*8 o r«po :åÿÿÿ=o   <+o   XŽi< Xš8 8& o o o   Xo    9…~9:ws   rµpo  r¹po  rÁpo  rÅpo  rÍpo  rÑpo  rÛpo  rápo  €9~9 o! 9ñE5ZÎÖ8Ñ : :(�X  9(� Ý« : :(�X   ݆ : :(�X   �%,�o" 8+šo o >o XŽi?ÊÿÿÿÝÝ (�ÝXŽi?týÿÿo# :(�:rïp o# : rÑpo : s�}6}7}8($ rûpo% s& o¢Ý9o' Üo( 8;() rp(* (+ o¢Ý9o' Ü(, :¹ÿÿÿÝþo' Ü o- o¥Ýo (. (/ Ý*Ad!/iwFQ—¹¹ 0Mrp(. rmp(. rp(. rp(. r«p(. rÕp(. rp(. (/ *>~%(‘*0I{+o4 9r÷ p( s zs[ o5o;{+o5 *0%{5% jX}5*0’{( ? €}(8) €>Xe}( 8 {'o6  @A{(?{(  €}(8 {'o6  ; }( *0^<*{(<'{( €; r% ps z}(8" ; rc ps z{(Xe}(*0Ÿ{* 9 }**{)o7 8 (“ <*(¡:88Ûÿÿÿ"@(š*8:{)Ño &(“ ? (¡9(”{)o *8Áÿÿÿ0"(— (ƒ9 r› ps z*0(˜ : rñ ps z*0ß~%�8k(“ <*(¡:P(@2(ƒ9 (”*(™�(ƒ:*8{; (”*88�ÿÿÿs  8M(“ <* {; };8X 8Y% :o *8 Ño &8®ÿÿÿ0«    8™(•:~%*r¯p( 99~%* 8`r' p( 9#99 @  s…*~%*9" :r+ p( 9 X 8X 8bÿÿÿ0s "o &   8(“< r/ ps z>I(Ÿ<rc pŒ( s z bX Y% :  Ño & 8•9[ uYE  ;8(œ8! 8 8(›o &884";\; 8o * 8Ño &88ûþÿÿÆrYEn;8  * * * *Ñ*0Z8P(“ < r™ ps z @ rÅ ps z(¡98"@*r ps z8«ÿÿÿ0Øo @o8 \;o8 *o ?™o8 \@‹o8 x; u;-8Po @o (ž ?Ñ*8Fo @o (ž ?Ñ*8o @ o8 (›*8r_ p( s z0>   8% o8 (Ÿ<*bX X o ?Ïÿÿÿ*0A0? 9=0Y*A? F=7Y*a? f=WY**0Ks 8;(“ <r� pŒ( s z@o *Ño &8Àÿÿÿ& þþ*0’}'}(rÇ pþØs^s[ s6 �%sC¢%þss¢ }1o882{198'{%{%X}š oT8Éÿÿÿ*0ñ(• :{09 rÙ ps z}1*(© (§ 9 9r p( s z{09V9{-o!8: 9( o49 oB8 {- o#8 {-o"859 o;8# 9 oB8r] p( s z*0{/o9 &*0¢ (0 s1 s;  8< š o4 98 (¦o6o5 o< X Ži?ºÿÿÿ8qo= oCo> 87(? o6o4 9Ýo6o5 o< (@ :½ÿÿÿÝþ o' ÜoA =ƒÿÿÿ{69ª  8”  š  oB   oFr… p  o?Œ o@Œ(C  o?{7>r¿p r« p(D s z o@{8>r¿p rá p(D s z X   Ži?aÿÿÿsE  oF oG 8ToH oDoI 8(J  o!oK (L :ÛÿÿÿÝþo' ÜoM : ÿÿÿÝ9o' Ü oN oO 8oP o$o%XoM :ÖÿÿÿÝ9o' ÜsQ sQ sR oF oG 8ÕoH o6(¤:(u"9rpo6( s zÝŽoS 9>oT %%oU rQpo6(¬(D oV 8)%XoW o6(¬oV o6oW o9oM :ÿÿÿÝ9o' ÜoF oG !8B!oH   o6(¤9Ý"%X" o6"oW  "o9!oM :²ÿÿÿÝ!9!o' ÜY#%&8%%&š$$(¤9 rUps z&X&&%Ži?ÐÿÿÿsX '#�(oF oG *8H*oH ))o6(¤9Ý('oY +)'oE()o8Y'+oZ ¢*oM :¬ÿÿÿÝ*9*o' Ü'o[ ,#X ?r�p(. -8-.,Ži�/8}08/0,0š-o ž0X00,Ži?Þÿÿÿ128+,2š1o,2š/2”o1/2”X12X22,Ži?Êÿÿÿ1.@8 1.8~ÿÿÿrÇp( (\ 33rÍpo] 3rprÑpo^ 3o 56856š43r€p4o_ 6X665Ži?Ùÿÿÿ3o 3rÀpo^ {2o( 888() 73o 3rp7o^ 8(, :ÖÿÿÿÝ8þo' Ü3o 3röpo` 3Ns99o oN oO ;8;oP ::9o5;oM :âÿÿÿÝ;9;o' Ü3o 3rRpoa 3o 3rXpo` 3Ns9,=>8=>š<<9-o &>X>>=Ži?Üÿÿÿ3o 3rRpoa 3o 3r´po` ?88?9 3,o 3o 3rþp(?šoŒo ?X??(Ži?½ÿÿÿ3o 3rRpoa 3o 3rpŒo^ 3o 3rprBpo^ 3o 3rprápo^ 3o AB88ABš@3r0pr\p@(D @oB o8Œo_ BXBBAŽi?½ÿÿÿ3o -93rprjpo^ 83rpr¾po^ 3o 3r& poa 3r0 po^ 3rprZ po^ sb Coc od E8Eoe DCDoT Dof EoM :ÙÿÿÿÝE9Eo' ÜCog oh G8.G(i F3r33pFŒFoU CFoj ok G(l :ÆÿÿÿÝGþo' Ü3r›3poa {3o( I8I() H3o 3rpHo^ I(, :ÖÿÿÿÝIþo' ÜÝ393o' ÜJ,LM8LMšKJK-o XJMXMMLŽi?ÚÿÿÿN oN oO P8PoP ONOo%XNPoM :ßÿÿÿÝP9Po' ÜrÜ4pJŒ(* r5pŒ(* rH5p#XŒ#Œ(m *AT|MÉÈ/÷¬j64jžë‰©Xo^Í'4[ž(ÆÕ1 # Dg Ž 4 °%Õ * +U 0!(§ 9*r�5p( s z0{+on &*:sásû*0¦(ør¸5po 9o (¨�*r¼5po 9o (�(�* r«po 9 o 8r7 po 9 o  rÀ5po :rÆ5po 9 o 8+rÌ5po :rÒ5po 9  o o :*  \8Mo8 (Ÿ? jn?*C Z YC X Xo ?¥ÿÿÿ 9 €C  e 9 rØ5ps z ( �*0+ (©:r6po ( s z(*^{0: r@6ps z*0ø s   8Ç o8 !?~=%; o &8– <rp6pŒoo &8t <.r€6pc À`Œ?_ €`Œop &8;rž6p c à`Œc?_ €`Œ?_ €`Œoq & X o ?-ÿÿÿo rÊ6prÐ6por *0j!o: {lu:r:pŒ( s zo:( o:( þo sä(û o;*.r<:ps zsx z0n"o: {lu : rÔ8ps zo:( ?  ÿ>r69pŒ( s zoÞ{kÒo.*0E"o: {lu : rÔ8ps zoÞ{ko/ ( o;*"o:&*:o<o;*"o=*:o<o;*"o=*"o>*Jo:(o=*bo:(o<o;*0€#o: o: {lu {lu 92 9,oÞ oÞ@{k{kYsøo;*(%{kY}ko;*0o:( e( o;*0'o:( o:( Z( o;*0'o:( o:( [( o;*0'$o:( o:( \( o;*0'o:( o:( ]( o;*0'$o:( o:( ^( o;*0(o:( o:( þ(o;*0+o:( o:( þþ(o;*0(o:( o:( þ(o;*0+o:( o:( þþ(o;*0"%o: o: ((o;*0%%o: o: (þ(o;*0.&o: (þ o: (þ þsúo;*01&o: (þ o: (þ þþsúo;*0.&o: (þ o: (þ þsúo;*0+$o:( o:( þþ(o;*0'$o:( o:( _( o;*0'$o:( o:( `( o;*0'$o:( o:( a( o;*0'o:( f( o;*0D(o:( ?> rv:ps zo:( _b( o;*0Do:( ?> rv:ps zo:( _c( o;*0D(o:( ?> rv:ps zo:( _d( o;*0 rž:po: þo (y *0;)o7 Y 8#rž:po< þo (y Y <Öÿÿÿ*Fo:((z *0 rpo: þo (y *({ *0=*o: þo o: þo ( (o;*"(£*( *0a{‰(• : rÚ6ps z{‰{/os 9r7p( s z{‰{/{‰(–ot *0¯+s‰ }‹{‰(•}Š{Š: rÚ6ps z{‰{ŠþŠs^(� {‰{/{Šos 9r7p{Š( s z{‰{/{Š{‰(—ot o;*r{‰{2{‰(–o *r{‰{3{‰(–o *0³,{‰(• : rB7ps z{‰(ª {‰(• : r‚7ps z{‰(ª < rÂ7ps z{‰(–o sä(û{‰{09{‰{- o!8 o;*0ã-{‰(• : rÚ6ps z{‰{09 {‰{.{‰{-ou 8 {‰}0{‰{‰s}-{‰(• : rð7ps zr,8p( 99{‰(™ (ƒ: r08ps z{‰{-o8 {‰}**0¿.o:( o:( o: {lu:rh8pŒ( s zþo {‰{09 {‰{.{‰{-ou 8 {‰}0{‰{‰ s}-{‰{-s…o*0Ç/{‰{0: r�8ps z{‰{-o o6 {‰{+o4 9r÷ p( s z{‰{+o5 {‰},{‰{.ov > {‰{‰{.ow }-8{‰}-{‰}0*¶{‰{,: r¬8ps z{‰{,o5*Š{‰(«{‰{-o:o!*0* {‰(«{‰{-o: (o(*0${‰(«{‰(• : rÚ6ps z{‰(© {‰(§ 9 9r p( s z9,{‰{-o!{‰{-{‡o#8� 9X o49{‰{- o#82{‰{- sósûo!{‰{-{ˆo#82{‰{-sòsûo!{‰{-{ˆo#*Î{‰{‰s&}4{‰{4sàsûo;*0�0o: þo o: {lu : rÔ8ps z{‰ oÞ{ksG{‰{+o4 9r÷ p( s z{‰{+o5 {‰},*0G{‰{4: r 9ps z{‰{4o%{‰{4sàsûo;*0b{‰{4: r 9ps zo:( ?  ÿ>r69pŒ( s z{‰{4Òo(*00 {‰(«{‰{-o: þo o%*00 {‰(«{‰{-o: þo o&*r{‰(«{‰{-o**r{‰(«{‰{-o.*r{‰(«{‰{-o/*r{‰(«{‰{-o1*r{‰(«{‰{-o0*r{‰(«{‰{-o,*r{‰(«{‰{-o+*r{‰(«{‰{-o-*ž{‰(«{‰{-o:(o*ž{‰(«{‰{-o:(o*00{‰(• : rj9ps z{‰(¨o;*0,1o:( {‰(  {‰(¨o;*0+{‰(“ < r�9ps z( o;*0{‰(• sòsûo;*0 o: {‰(*b{‰(«{‰}0*6{‰}0*00 {‰(«{‰{-o: þo o'*r{‰(«{‰{-o)*0®%o: o: {l: %{k(X}ko;8s{lu9F{lu95{‰þo þo ( (¨o;8rÀ9pŒŒ( s z*( *Zrô9p{Š( s z( * *Zr¨:po ( s zŠrÒ:p( o| {kŒ( *þ*{e*"}e*:(Ù(ß*~(Ùs&(ß(Þo,*N(Þ{ko3*0 u 9(ÞoÞþ+*r(Ù}f}g}h*.râ:ps z:{k(ç*0D:{f*>r0;p{fŒ( *r\;p{fjeŒ*( *0K2{gjjX {hjjX  j< (é( j> (é(  (} *0= j<8 X cj@ïÿÿÿ88 X cj@ïÿÿÿ*(Ù* *rˆ;p**uþ*{i*"}i*{j*"}j*V(Ù(ï(ñ*j(Ùo6(ï(ñ*z(ð:(îo¦(ñ*R(ô(ðoB*Fr’;p(î( *0" u 9(îoî( +*>}k}l*>}k}l*n98}k}l*>}k}l*ª{l: {kþþ*{lqoÚ*º{l:{k*r6pþo ( s z(ý*Î{l:rp{kŒ( *{lqoÜ*:(oÛ*00 {lu :r¨:pþo ( s z*0T{k{k;*{l{l@*{l9 {l:*{l{loÝ*sú*"isø*sø*sø*sø*sø*sø*sø*"(ü*&(ýg*&(ýÒ*&(ýh*&(ýÑ*&(ýÑ*"(ý*"(ý*{u*"}u*0\( }m}n�}o}ps~ }qs }rsQ }s}t~%(*0‹{p; r ;ps z{t:"{q{qo Yo€ oQ9(){m{n{so� {qo‚ {ro- sQ (o;*&(*‚{qoƒ {ro }t*0C{o{pY” {o{pYY{o{pY( {o{pž*0{o{pY” (*0N3{oŽi %{pX% }p@b� {o( }o{o{pž*0{o%{p% Y}p”*J{qo (*V{qo eY(*0( < rà;ps z*0( ? rü;ps zeY*6sI(*0k4re po 9o  8  {so! 9(9sw(8 s[(8 sB(*:sC(*6sB(*06{so! 9s[(8r <p( s z*06{so! 9sw(8r <p( s z*ê{so„ 9r@<p( s z{s{so� o… *Îoð:sBoî(8oðsC(*2s}(*J(sr(*J(sf(*J(sl(*0/( {qo€ {qo YYoV}t*(*0"(  {qo YYss(*0"(  {qo YYsg(*0"(  {qo YYsm(*{v*"}v*{w*"}w*{x*"}x*{y*"}y*{z*"}z*‚( (3(7~%(;*{{*"}{*095(: (ƒ:*(„9*(‚(�Y(} * **Zrv<p(6( s zs† *s‡ *.r¸<ps z*–(<}|}~s…(;*–(<}}}~s…(;*0š6{|9*{9rü<p(6( s z}(2{}o¦u  :r@=p(6{}( s zoA{|}|%{~{~X}~}*ŽoA{~{|sàsûo;*07oAs‡ {|oˆ *öoAso‰ {|o#{~Xso‰ so‰ *{€*"}€*{�*"}�*‚(<(P}‚(N*6oF{„*6oF{…*0Z1{‚:* 81{‚š :8(Oš(2o¦oUX {‚Ži?Áÿÿÿ}‚*foA(O(Mo8*0J8oAs† (O  8% š (2oW9oŠ X Ži?Òÿÿÿ*0J9oAs‡ (O  8% š (2oX9oˆ X Ži?Òÿÿÿ*0‹:oA(OŽi �  8(OšoY¢X ?åÿÿÿ 8(O š oZ X ?æÿÿÿ(Mso‰ 8šo‰ X?èÿÿÿ*0Z” €@ž*”;<rš=p�%(6¢%Œ¢%”Œ¢%Œ¢(‹ s z*0(;{ƒ 9 ; 88*r>p(6r¿p(D s z}ƒ(OŽi �  8  €ž X ?íÿÿÿž� €   8Ö(Oš  oQ ” u 9« (2oWoFo:(ƒ:rN>p(6o6( s z(„9  8(‚(�Y o?X(   o@(   (�Y(}  8† u9c €@ 8F;=r´>p�%(6¢%Œ¢%Œ¢%Œ¢(‹ s z8 oS X(  X (}   oR9!XX%Xž(Y&X 9(Y:<%X”888%þÿÿ }„(MX X}… €@ e(…8 e eX(…(:(ƒ9O(:(‹:8r(?p(6þo (:þo (Œ s z8(;}ƒ*B(<}†*J([(;*6{†o_*æ: \ `\n parse drop ; immediate \ This file defines the core non-native functions (mainly used for \ parsing words, i.e. not part of the generated output). The line above \ defines the syntax for comments. \ Define parenthesis comments. \ : ( `) parse drop ; immediate : else postpone ahead 1 cs-roll postpone then ; immediate : while postpone if 1 cs-roll ; immediate : repeat postpone again postpone then ; immediate : ['] ' ; immediate : [compile] compile ; immediate : 2drop drop drop ; : dup2 over over ; \ Local variables are defined with the native word '(local)'. We define \ a helper construction that mimics what is found in Apple's Open Firmware \ implementation. The syntax is: { a b ... ; c d ... } \ I.e. there is an opening brace, then some names. Names appearing before \ the semicolon are locals that are both defined and then filled with the \ values on stack (in stack order: { a b } fills 'b' with the top-of-stack, \ and 'a' with the value immediately below). Names appearing after the \ semicolon are not initialized. : __deflocal ( from_stack name -- ) dup (local) swap if compile-local-write else drop then ; : __deflocals ( from_stack -- ) next-word dup "}" eqstr if 2drop ret then dup ";" eqstr if 2drop 0 __deflocals ret then over __deflocals __deflocal ; : { -1 __deflocals ; immediate \ Data building words. : data: new-data-block next-word define-data-word ; : hexb| 0 0 { acc z } begin char dup `| = if z if "Truncated hexadecimal byte" puts cr exitvm then ret then dup 0x20 > if hexval z if acc 4 << + data-add8 else >acc then z not >z then again ; \ Convert hexadecimal character to number. Complain loudly if conversion \ is not possible. : hexval ( char -- x ) hexval-nf dup 0 < if "Not an hex digit: " puts . cr exitvm then ; \ Convert hexadecimal character to number. If not an hexadecimal digit, \ return -1. : hexval-nf ( char -- x ) dup dup `0 >= swap `9 <= and if `0 - ret then dup dup `A >= swap `F <= and if `A - 10 + ret then dup dup `a >= swap `f <= and if `a - 10 + ret then drop -1 ; \ Convert decimal character to number. Complain loudly if conversion \ is not possible. : decval ( char -- x ) decval-nf dup 0 < if "Not a decimal digit: " puts . cr exitvm then ; \ Convert decimal character to number. If not a decimal digit, \ return -1. : decval-nf ( char -- x ) dup dup `0 >= swap `9 <= and if `0 - ret then drop -1 ; \ Commonly used shorthands. : 1+ 1 + ; : 2+ 2 + ; : 1- 1 - ; : 2- 2 - ; : 0= 0 = ; : 0<> 0 <> ; : 0< 0 < ; : 0> 0 > ; \ Get a 16-bit value from the constant data block. This uses big-endian \ encoding. : data-get16 ( addr -- x ) dup data-get8 8 << swap 1+ data-get8 + ; \ The case..endcase construction is the equivalent of 'switch' is C. \ Usage: \ case \ E1 of C1 endof \ E2 of C2 endof \ ... \ CN \ endcase \ \ Upon entry, it considers the TOS (let's call it X). It will then evaluate \ E1, which should yield a single value Y1; at that point, the X value is \ still on the stack, just below Y1, and must remain untouched. The 'of' \ word compares X with Y1; if they are equal, C1 is executed, and then \ control jumps to after the 'endcase'. The X value is popped from the \ stack immediately before evaluating C1. \ \ If X and Y1 are not equal, flow proceeds to E2, to obtain a value Y2 to \ compare with X. And so on. \ \ If none of the 'of' clauses found a match, then CN is evaluated. When CN \ is evaluated, the X value is on the TOS, and CN must either leave it on \ the stack, or replace it with exactly one value; the 'endcase' word \ expects (and drops) one value. \ \ Implementation: this is mostly copied from ANS Forth specification, \ although simplified a bit because we know that our control-flow stack \ is independent of the data stack. During compilation, the number of \ clauses is maintained on the stack; each of..endof clause really is \ an 'if..else' that must be terminated with a matching 'then' in 'endcase'. : case 0 ; immediate : of 1+ postpone over postpone = postpone if postpone drop ; immediate : endof postpone else ; immediate : endcase postpone drop begin dup while 1- postpone then repeat drop ; immediate \ A simpler and more generic "case": there is no management for a value \ on the stack, and each test is supposed to come up with its own boolean \ value. : choice 0 ; immediate : uf 1+ postpone if ; immediate : ufnot 1+ postpone ifnot ; immediate : enduf postpone else ; immediate : endchoice begin dup while 1- postpone then repeat drop ; immediate \ C implementations for native words that can be used in generated code. add-cc: co { T0_CO(); } add-cc: execute { T0_ENTER(ip, rp, T0_POP()); } add-cc: drop { (void)T0_POP(); } add-cc: dup { T0_PUSH(T0_PEEK(0)); } add-cc: swap { T0_SWAP(); } add-cc: over { T0_PUSH(T0_PEEK(1)); } add-cc: rot { T0_ROT(); } add-cc: -rot { T0_NROT(); } add-cc: roll { T0_ROLL(T0_POP()); } add-cc: pick { T0_PICK(T0_POP()); } add-cc: + { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(a + b); } add-cc: - { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(a - b); } add-cc: neg { uint32_t a = T0_POP(); T0_PUSH(-a); } add-cc: * { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(a * b); } add-cc: / { int32_t b = T0_POPi(); int32_t a = T0_POPi(); T0_PUSHi(a / b); } add-cc: u/ { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(a / b); } add-cc: % { int32_t b = T0_POPi(); int32_t a = T0_POPi(); T0_PUSHi(a % b); } add-cc: u% { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(a % b); } add-cc: < { int32_t b = T0_POPi(); int32_t a = T0_POPi(); T0_PUSH(-(uint32_t)(a < b)); } add-cc: <= { int32_t b = T0_POPi(); int32_t a = T0_POPi(); T0_PUSH(-(uint32_t)(a <= b)); } add-cc: > { int32_t b = T0_POPi(); int32_t a = T0_POPi(); T0_PUSH(-(uint32_t)(a > b)); } add-cc: >= { int32_t b = T0_POPi(); int32_t a = T0_POPi(); T0_PUSH(-(uint32_t)(a >= b)); } add-cc: = { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(-(uint32_t)(a == b)); } add-cc: <> { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(-(uint32_t)(a != b)); } add-cc: u< { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(-(uint32_t)(a < b)); } add-cc: u<= { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(-(uint32_t)(a <= b)); } add-cc: u> { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(-(uint32_t)(a > b)); } add-cc: u>= { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(-(uint32_t)(a >= b)); } add-cc: and { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(a & b); } add-cc: or { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(a | b); } add-cc: xor { uint32_t b = T0_POP(); uint32_t a = T0_POP(); T0_PUSH(a ^ b); } add-cc: not { uint32_t a = T0_POP(); T0_PUSH(~a); } add-cc: << { int c = (int)T0_POPi(); uint32_t x = T0_POP(); T0_PUSH(x << c); } add-cc: >> { int c = (int)T0_POPi(); int32_t x = T0_POPi(); T0_PUSHi(x >> c); } add-cc: u>> { int c = (int)T0_POPi(); uint32_t x = T0_POP(); T0_PUSH(x >> c); } add-cc: data-get8 { size_t addr = T0_POP(); T0_PUSH(t0_datablock[addr]); } add-cc: . { extern int printf(const char *fmt, ...); printf(" %ld", (long)T0_POPi()); } add-cc: putc { extern int printf(const char *fmt, ...); printf("%c", (char)T0_POPi()); } add-cc: puts { extern int printf(const char *fmt, ...); printf("%s", &t0_datablock[T0_POPi()]); } add-cc: cr { extern int printf(const char *fmt, ...); printf("\n"); } add-cc: eqstr { const void *b = &t0_datablock[T0_POPi()]; const void *a = &t0_datablock[T0_POPi()]; T0_PUSH(-(int32_t)(strcmp(a, b) == 0)); } BSJB v4.0.30319l˜.#~/t#StringsxF°?#US(†#GUID8†ä#BlobW¢ ú3/%‹ŠW�‹;)9h£®º®Þì  [ŒYov•všv¬Çívvv#v,v9ìYv§v.vCL�®”®¡vµÚvâ®vAv \o† v š » Ô â ð ü  ®{< Ÿµ� L½ vv(v5vMvAÇ !€!! 1 A U h |!!†!6Š!A�8B›8I€§! P®8 [€½8!`È@"fÕ@"lå@"rö8"w8#|­#�!'�!eÙ)`eÞ6`fäC`iêP`iî[­køb!m€n!v2s||G||€MŒ|†[—¹‡^!‡be !Љ¡¸ÃÊÒë "'"',Ò@DHNT]f$j$p{†(,�‘�–šŸ0§0­4ÅÑ8ø<?4(=HILcTl\v\‚_“_¢f¬º\ÍÕÎ~{ŠŠŠ™Š¨Š·ŠÆŠÕŠäŠóŠ Š Š Š/ Š> ŠM Š\ Šk Š{ Š‹ Š› Š« Š» ŠË ŠÛ Šë Šû Š Š Š+ Š; ŠK Š[ Šk Š{ Š‹ Š› Š« Š» ŠË ŠÛ Šë Šû Š ŠÝfó<øü<(.0j4n7<<rDJvO_†~f\q0Žn¢\<½q0Ó<êfï<ü\0O†FS`JŠ)€2€;nJ <| æP ƒ} t � �À ƒ}\!ƒ}§ÿ!ƒ ž"ƒ "ƒ' ž"ƒ6 !"ƒ}�0"ÃE ÃS ! Ã] & <"“d - h"“r -Ð"“ƒ ;[#ƒ}Jl#�’ žÀ#ÃS ! $ÃE $Ã] &~$ƒ}J�$ÃS !§$Ã] &Ì$ƒ}Tì$ÃS !,%Ã] &�%ƒ}\!³%ÃS !#Ü%Ã] &$&ƒ}b&3&ÃS !(\&Ã] &)�&ƒž h+¥&�¥ l+®&ƒ ž,¶&ƒ ,¿&ƒ¡ž-Ç&ƒ}q-ð&�¬ .H'ƒ³ /x'ƒ¸ 0Ä'ƒ¾ 1,(ƒÄ 2°(ƒÊ §3)�Ô ƒ4+)ƒß ‰6>)ƒä �8P)ƒê ”9o)ƒñ ”:œ)ƒø ”;Ø)ƒt<T*�ÿ Ÿ=@+ƒ] ®>r+ƒ}�?•+ƒ ž? +ƒ´?ç+ƒ �A,ƒŒ ÁAL,ƒ‡ ÆA¯,ƒÔBÌ,ƒC0-ƒ#D‘-ƒ(ÔE©-ƒ1ßFÂ-ƒ}æH.ƒ}�J.ƒ}óJ&.ÃnóKE.ÃjíLS.ÈùMq.âNƒ.ÆtÕN¯.ƒ}ÆN¾.ÃZžOÁ.ÃjíOÐ.ÈùP/ÕQ4/âR*0ÆtÕRÝ-ƒ}�Rå-à :lRè-à MžRë-à ZžRÃjíRî-ÃnóSú-Ã|T.ÈùU .ÕVâW .ð WG0ƒ}YV0ÃZžZY0ÃjíZm0â[{0ÆtÕ[’0ƒ}�[Ÿ0ƒ}[®0ÃMž\¶0Ãjí\Ë0Ã|]ï0ð ^1ƒ}�` 1ƒ}`1ÃZža1ÃjíaC1âbK1ÆtÕbx1ƒ}�b€1ƒ}b‰1ÃZžcŒ1Ãjíc³1âd»1ÆtÕdè1ƒ}�dð1ƒ}dù1Ã:le2âe 2ÆtÕe92ƒ}eH2ÃZžfK2Ãjíf_2âgm2ÆtÕg„2Ã:lg‡2†}�g�2Ãjíg—2âhŸ2ÆtÕh¦2ƒ¶žh®2ƒÁžh¶2ƒÍlhÄ2ƒÙlhÞ2ƒ}ƒh3–î'j*3–ä'lU3Æò/nv3ÆùžoŒ3ÆtÕoì3ƒ4o_4‘ ðp|4�}�pø@–@pžxÀF�Gx,G�NÕyØG�SÕyH�S¥y0H�^¥zI�k¸{ÔI�~Õ{ÿJ‘ŠÏ{4K�›�|œK‘¢Ô|€L‘²ß}ÌL‘¹ì~M�ÀsM‘Éñ€€M�Îö� N�Ûí‚ O�çƒ@O�ð„D[ƒù ‡t[ƒ ˆ‘[ƒ ‰ [ƒŠT]�&/Œ‹]�3��¤]‘B4�¨^‘QAŽ_‘^A�*_‘kA�4_‘xA‘°_‘…A’`‘’A“ `‘ŸA”`‘¬A•"`‘¹A–1`‘ÆA—:`‘ÓA˜C`‘àA™V`‘íAšp`‘úA›ü`‘Aœ$a‘A�Xa‘!AžŒa‘/AŸÀa‘=A ôa‘KA¡(b‘YA¢\b‘gA£”b‘uA¤Èb‘ƒA¥c‘‘A¦0c‘ŸA§dc‘­A¨ c‘»A©àc‘ÉAªd‘×A«Td‘åA¬ˆd‘óA­¼d‘A®ðd‘A¯e‘A°he‘+A±¸e‘9A²f‘GA³4f‘UA´{f‘cAµ�f‘qA¶»f‘A·Äf‘�A¸ g�›í¹=s†}�ºEsÃÏɺHsÃÖÏ»_sÃt×½‚sÃòݾˆsƒÞã¿�s�çè¿™sƒ}èÀ¨sƒ}îÁÈsÃt×ÃÜsÃòÝÄtƒ}õÅ$tÃÏÉÈ0tÃt×É@tƒðÊ�tƒø”Ëèt‘Ì1u†}�Í9uÃÏÉÍpnƒí?Änƒí@4oƒíApoƒ'íB¬oƒ/íCÉoƒ7íDæoƒ?íEpƒGíF pƒOíG=pƒWíHZpƒ_íIwpƒgíJ”pƒoíK¼pƒwíLäpƒíM qƒ‡íNXqƒ�íO�qƒ—íP¼qƒŸíQÞqƒ§íR÷qƒ¯íSrƒ·íTDrƒ¿íUdrƒÇíVs†}�W&sƒ¯íW¡¸Ã“óçç÷÷÷÷÷÷÷÷"'÷÷"'÷÷çç“...7TrJ„rŽŽŽ��rj„”””‘¹�”‘”‘¹‘”‘”‘�””–š¿Â¿ÂÅ7É7 J7 % JK % % K X 7K d K g ”7j r z 777J M J 7”””””””””””””””””””””””””””””””””””””””””””• š ”š ± ç´ · 7š ± óøüš š rš š ± çç7”š ± ..“.0”rrrrrrrrrç47Ç Ç Ê ŽŽ.rÒ 77Ú à ççççç· 7ç”ã · 7êü· 7ïü”ã çç· 7„JO”ã ç ê K · 7J· 7% J”ì ó ””ú ì  ””””””””””””””””””””””””””””””””””””””� A}� ƒ� �“ �˜Q¡žY}�a}§Q ¬Q ²y(¹�2¿‰BʉKÏ‘}�}�AtÕ}ÙQ˜ßAŸ噬ÕQ˜ê }�Qßö êûQîQúQ Q ÕQúQÕ}ê#"+Q34 9ž©^;©s@¹}FÁ­� ÀLÎ[у`Ùçfðl ùpуvá {éP…$}’,}�4}’<1 ²<= #F žM QZ ¸D"+}�L}�L¢ ûLª [TÀL\Î[\ðlL9ž<² ÚуáQ˜éd}�<É ølÀ tÎ[|ÀL„Î[Œ= #„ðl)ðlŒÉ ø”À œÎ[}�¤}�¬1 ²¬² Ú´² Ú´= #¬= #¼}�¼9ž¼² ^¼ùpÙ d ' § ƒ˜ ƒk �§ ƒ§Ä}�¬3 yÌÀ ÔÎ[Ä= #Ä3 ‘ÜÀ¥äÎ[IJ Ú ƒ¹äðlуÁ<"+P ÈP ÏP ×Q] àD1 ²D= #,‡ û,9ž,Œ [a}�Ñ�`Ñ�ëуðI¨ Õyà ¹ì}�ì9žì² ^9žìùpìêû1 ²= #T}�|}�|êû¼êûTêûQ ûQ y}�.k» 3¢¡3¢À3¢Á3¢à3¢3¢!3¢A3¢ 3¢@3¢`3¢€3¢ƒ3¢!3¢A3¢a3¢�3¢¡3¢Á3¢á3¢3¢!3¢A3¢a3¢�3¢¡3¢Á3¢á3¢ 3¢! 3¢A 3¢a 3¢� 3¢¡ 3¢Á 3¢á 3¢ 3¢! 3¢A 3¢a 3¢� 3¢¡ 3¢Á 3¢á 3¢ 3¢! 3¢A 3¢a 3¢� 3¢¡ 3¢Á 3¢á 3¢ 3¢! 3¢A 3¢a 3¢� 3¢¡ 3¢! 3¢A 3¢¡3¢Á3¢á3¢3¢!3¢A3¢a3¢3¢!3¢ÄÓ¢ 3¢À3¢à3¢3¢ 3¢@3¢`3¢€3¢ 3¢À3¢à3¢3¢ 3¢@3¢`3¢€3¢ 3¢À3¢à3¢3¢ 3¢@3¢`3¢€3¢ 3¢À3¢à3¢3¢ 3¢@3¢`3¢€3¢ 3¢À3¢à3¢3¢ 3¢@3¢`3¢€3¢ 3¢À3¢à3¢3¢À3¢à3¢À3¢à3¢3¢ 3¢`"3¢€"3¢@&3¢`&3¢€&3¢ &3¢À&3¢à&3¢'3¢ '3¢@'3¢`'3¢ '3¢À'3¢ )3¢À)3¢à)3¢*3¢4BOw~™¥¼ÌÚ:F�–šŸ¬°½ÅÙäü "9GPXdipy}‚‰’œ¤ª²¸Äü”›¬àæ +=      !&i�q�|�„‘i�‡�Ž�”� •¯�”�”�¯�”�”� •”� •¸�¿�Ǖϕ֙۞à¢ç•ì�ð§õ«4°•Ûž �õ«ž�#�2�<µ�#�! " # $ % 7JQRS\bhnt!x#|%�'‚)ƒ+„-Þ/ß/î1ï1ð3ñ3ü5ý7þ9;;2=3=4?5?6A7A8C9C:E;E=G>G?I@KMMNMOOPORQSSðUŠœ£ª½ÄÌÓð#*2:BIPWrƒŠ�±ô€Ú_Úv_ #"$%$BlobWriterCodeElementCodeElementJumpCodeElementUIntCodeElementUIntExprCodeElementUIntIntCodeElementUIntUIntConstDataCPUFrameOpcodeCallOpcodeConstOpcodeOpcodeGetLocalOpcodeJumpOpcodeJumpIfOpcodeJumpIfNotOpcodeJumpUncondOpcodePutLocalOpcodeRetSTypeT0CompTPointerBaseTPointerBlobTPointerExprTPointerNullTPointerXTTValueWordBuilderWordWordDataWordInterpretedWordNativeNativeRunwTextWriterSystem.IOmaxLineLenindentlineLen
k__BackingFieldk__BackingFieldjumpTypetargetvalcxoffval1val2k__BackingFieldbuflenipBufipOffstackBufstackPtrrspuppersavedIpBufsavedIpOfflocalsnumdispdindoutUNKNOWNBLANKcurrentInputTextReaderdelayedChartokenBuilderStringBuilderSystem.TextdelayedTokenwordsIDictionary`2System.Collections.GenericlastWordwordBuildersavedWordBuildersStack`1allCCodecompilingquitRunLoopextraCodeList`1extraCodeDeferdataBlockcurrentBlobIDenableFlowAnalysisdsLimitrsLimitk__BackingFieldexprminmaxk__BackingFieldk__BackingFieldxptrTCnamecfStackcfPtrcodetoResolveDictionary`2jumpToLastk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldblobbaseBlobNameoffsetongoingResolutionk__BackingFieldk__BackingFieldflowAnalysismaxDataStackmaxReturnStackObjectSystem.ctorWriteLineWritebByteStringget_LengthCompilerGeneratedAttributeSystem.Runtime.CompilerServicesvalueExceptiononeByteCodebwUInt32FormatInt32ctxelenMathMaxArrayCopysEncodingget_UTF8GetBytesdlenIndexOutOfRangeExceptionvToStringAppendnumLocalsdepthcpuConcatGetTypeTypeget_FullNamegcodes1s2objargs<>f__switch$map0StartsWithAddop_EqualitySubstringIndexOfToLowerInvariantTrimTryGetValueCharSplitget_CountAssemblySystem.ReflectionGetExecutingAssemblyGetManifestResourceStreamStreamStreamReaderIDisposableDisposeEnumeratorGetEnumeratorget_CurrentConsoleFileOpenTextMoveNextToArrayEnvironmentExitc__AnonStorey1wliteralwcompile$thisStringComparerget_OrdinalSortedDictionary`2IComparer`1<>f__am$cache0<>f__am$cache1<>f__am$cache2<>f__am$cache3<>f__am$cache4<>f__am$cache5<>f__am$cache6<>f__am$cache7<>f__am$cache8<>f__am$cache9<>f__am$cacheA<>f__am$cacheB<>f__am$cacheC<>f__am$cacheD<>f__am$cacheE<>f__am$cacheF<>f__am$cache10<>f__am$cache11<>f__am$cache12<>f__am$cache13<>f__am$cache14<>f__am$cache15<>f__am$cache16<>f__am$cache17<>f__am$cache18<>f__am$cache19<>f__am$cache1A<>f__am$cache1B<>f__am$cache1C<>f__am$cache1D<>f__am$cache1E<>f__am$cache1F<>f__am$cache20<>f__am$cache21<>f__am$cache22<>f__am$cache23<>f__am$cache24<>f__am$cache25<>f__am$cache26<>f__am$cache27<>f__am$cache28<>f__am$cache29<>f__am$cache2AimmediatestackEffectContainsKeyset_ItemReadcset_Lengthtget_CharscttroutBasecoreRunentryPointsParamArrayAttributeQueue`1EnqueueDequeueget_ItemIEnumerator`1get_ValuesICollection`1IEnumerable`1IEnumeratorSystem.CollectionsCreateTextStreamWriterset_NewLineget_KeysKeyCollectiontttvAppendFormatReplacec__AnonStorey0<>f__ref$1PushPopcpu2xcpuvpMemberInfoget_NametpcdownerInt64MinoprefNamewtargetlnamextdstsajobjectmethodcallbackresultDoNLget_Addressset_Addressget_LastLengthset_LastLengthSetJumpTargetGetLengthEncodeEncodeOneByteEncode7EUnsignedEncode7ESignedget_JumpOffget_IDset_IDExpandAdd8Add16Add24Add32AddStringCheckIndexSet8Read8Read16Read24Read32DecodeUTF8get_DepthEnterPeekRotNRotGetLocalPutLocalget_MayFallThroughget_JumpDispget_StackActionRunResolveTargetResolveJumpGetReferenceGetDataBlockToCodeElementFixUpget_DataInget_DataOutget_IsKnownget_NoExitop_InequalityEqualsGetHashCodeIsSubOf.cctorValueTypeMainUsageAddNativeNextBlobIDNextCharUnreadNextParseCCodeParseCCodeNFParseStackEffectNFParseStringSingleCharEscapeSkipNLDecodeCharConstDecHexHexValReadTermIsWSProcessInputCompileStepGetCCodeGenerateLookupLookupNFStringToBlobTryParseLiteralParseIntegerCheckCompilingEscapeCCommentm__0m__1m__2m__3m__4m__5m__6m__7m__8m__9m__Am__Bm__Cm__Dm__Em__Fm__10m__11m__12m__13m__14m__15m__16m__17m__18m__19m__1Am__1Bm__1Cm__1Dm__1Em__1Fm__20m__21m__22m__23m__24m__25m__26m__27m__28m__29m__2Am__2B<>m__0<>m__1<>m__2<>m__3<>m__4<>m__5<>m__6<>m__7<>m__8<>m__9<>m__A<>m__B<>m__C<>m__D<>m__E<>m__F<>m__10<>m__11<>m__12<>m__13<>m__14<>m__15<>m__16<>m__17<>m__18<>m__19<>m__1A<>m__1B<>m__1C<>m__1D<>m__1E<>m__1F<>m__20<>m__21<>m__22<>m__23<>m__24<>m__25ToBoolExecuteget_Blobset_BlobToCExprGetMaxBitLengthBitLengthset_Nameget_Targetset_TargetResolveget_Boolget_Intget_UIntToXTop_Implicitget_StackEffectset_StackEffectBuildCSRollCSPickCSPushCSPopCSPushOrigCSPushDestCSPopOrigCSPopDestLiteralCallCallExtDefLocalRetAheadAheadIfAheadIfNotThenBeginAgainAgainIfAgainIfNotget_TCset_TCget_Immediateset_Immediateget_Slotset_Slotget_CCodeset_CCodeget_MaxDataStackget_MaxReturnStackGetReferencesGetDataBlocksGenerateCodeElementsAnalyseFlowget_NumLocalsset_NumLocalsget_Codeset_CodeMergeSAInvokeBeginInvokeIAsyncResultAsyncCallbackEndInvokeMulticastDelegatet0-kernelAddressLastLengthJumpOffIDLengthDepthStackActionMayFallThroughJumpDispDataInDataOutIsKnownNoExitBlobNameTargetBoolIntUIntStackEffectImmediateSlotCCodeMaxDataStackMaxReturnStackNumLocalsCodeRuntimeCompatibilityAttributemscorlibT0Comp.exe0x{0:X2}{0}=Code element accepts no targetCCannot encode '{0}' over one byte)Unresolved addressesT0_INT{0}({1})/Opcode already resolved-Unresolved call target call UNRESOLVEDECannot compile XT: non-zero offsetECannot embed constant (type = {0}) const #Not a call opcode#Not a jump opcodegetlocal +Jump already resolved#jumpif UNRESOLVEDjumpif disp=)jumpifnot UNRESOLVEDjumpifnot disp=jump UNRESOLVEDjump disp=putlocal retUNKNOWNin:{0},noexitin:{0},out:{1}---ooutrrunm mainnf noflow t0outt0-kernel [{0}]Qusage: T0Comp.exe [ options... ] file...options:€‘ -o file use 'file' as base for output file name (default: 't0out')€— -r name use 'name' as base for run function (default: same as output)) -m name[,name...]G define entry point(s)G -nf disable flow analysisadd-cc:cc:preamblepostamblemake-CXCXco:define-word;immediateliteralcompilepostpone exitvmnew-data-block!define-data-wordcurrent-datadata-add8data-set8data-get8%compile-local-read'compile-local-write ahead begin again untiluntilnotif ifnot thencs-pickcs-rollnext-word parse char'execute[](local) dropdup swap overrot -rot roll pick+neg*/u/%u%<<=>>==<>u<u<=u>u>=andorxornot<<>>u>>..s putc putscr eqstr-Word already defined: =Already two delayed characters7Cannot delay two charactersUStack effect forbidden in this declaration5Error while parsing C code)!3Unfinished literal string5not an hex digit: U+{0:X4}+EOF in literal stringGUnescaped newline in literal stringQInvalid newline escape in literal string/Invalid literal char: `7EOF reached before U+{0:X4}toplevel'EOF while compiling[Ambiguous: both defined word and literal: {0}'Unknown word: '{0}'%{0}: ds={1} rs={2}5' exceeds data stack limit9' exceeds return stack limit5No C code for native '{0}' 7Non-interpreted entry point9WARNING: more than 255 words.c Š­/* Automatically generated code; do not modify directly. */ #include <stddef.h> #include <stdint.h> typedef struct { uint32_t *dp; uint32_t *rp; const unsigned char *ip; } t0_context; static uint32_t t0_parse7E_unsigned(const unsigned char **p) { uint32_t x; x = 0; for (;;) { unsigned y; y = *(*p) ++; x = (x << 7) | (uint32_t)(y & 0x7F); if (y < 0x80) { return x; } } } static int32_t t0_parse7E_signed(const unsigned char **p) { int neg; uint32_t x; neg = ((**p) >> 6) & 1; x = (uint32_t)-neg; for (;;) { unsigned y; y = *(*p) ++; x = (x << 7) | (uint32_t)(y & 0x7F); if (y < 0x80) { if (neg) { return -(int32_t)~x - 1; } else { return (int32_t)x; } } } } #define T0_VBYTE(x, n) (unsigned char)((((uint32_t)(x) >> (n)) & 0x7F) | 0x80) #define T0_FBYTE(x, n) (unsigned char)(((uint32_t)(x) >> (n)) & 0x7F) #define T0_SBYTE(x) (unsigned char)((((uint32_t)(x) >> 28) + 0xF8) ^ 0xF8) #define T0_INT1(x) T0_FBYTE(x, 0) #define T0_INT2(x) T0_VBYTE(x, 7), T0_FBYTE(x, 0) #define T0_INT3(x) T0_VBYTE(x, 14), T0_VBYTE(x, 7), T0_FBYTE(x, 0) #define T0_INT4(x) T0_VBYTE(x, 21), T0_VBYTE(x, 14), T0_VBYTE(x, 7), T0_FBYTE(x, 0) #define T0_INT5(x) T0_SBYTE(x), T0_VBYTE(x, 21), T0_VBYTE(x, 14), T0_VBYTE(x, 7), T0_FBYTE(x, 0) /* static const unsigned char t0_datablock[]; */ ?void {0}_init_{1}(void *t0ctx);5void {0}_run(void *t0ctx);[static const unsigned char t0_datablock[] = {};[static const unsigned char t0_codeblock[] = {Istatic const uint16_t t0_caddr[] = { {0}9#define T0_INTERPRETED {0}‚�#define T0_ENTER(ip, rp, slot) do { \ const unsigned char *t0_newip; \ uint32_t t0_lnum; \ t0_newip = &t0_codeblock[t0_caddr[(slot) - T0_INTERPRETED]]; \ t0_lnum = t0_parse7E_unsigned(&t0_newip); \ (rp) += t0_lnum; \ *((rp) ++) = (uint32_t)((ip) - &t0_codeblock[0]) + (t0_lnum << 16); \ (ip) = t0_newip; \ } while (0)�M#define T0_DEFENTRY(name, slot) \ void \ name(void *ctx) \ { \ t0_context *t0ctx = ctx; \ t0ctx->ip = &t0_codeblock[0]; \ T0_ENTER(t0ctx->ip, t0ctx->rp, slot); \ }+T0_DEFENTRY({0}, {1}) _init_S#define T0_NEXT(t0ipp) (*(*(t0ipp)) ++)g#define T0_NEXT(t0ipp) t0_parse7E_unsigned(t0ipp) void){0}_run(void *t0ctx)’×{ uint32_t *dp, *rp; const unsigned char *ip; #define T0_LOCAL(x) (*(rp - 2 - (x))) #define T0_POP() (*-- dp) #define T0_POPi() (*(int32_t *)(-- dp)) #define T0_PEEK(x) (*(dp - 1 - (x))) #define T0_PEEKi(x) (*(int32_t *)(dp - 1 - (x))) #define T0_PUSH(v) do { *dp = (v); dp ++; } while (0) #define T0_PUSHi(v) do { *(int32_t *)dp = (v); dp ++; } while (0) #define T0_RPOP() (*-- rp) #define T0_RPOPi() (*(int32_t *)(-- rp)) #define T0_RPUSH(v) do { *rp = (v); rp ++; } while (0) #define T0_RPUSHi(v) do { *(int32_t *)rp = (v); rp ++; } while (0) #define T0_ROLL(x) do { \ size_t t0len = (size_t)(x); \ uint32_t t0tmp = *(dp - 1 - t0len); \ memmove(dp - t0len - 1, dp - t0len, t0len * sizeof *dp); \ *(dp - 1) = t0tmp; \ } while (0) #define T0_SWAP() do { \ uint32_t t0tmp = *(dp - 2); \ *(dp - 2) = *(dp - 1); \ *(dp - 1) = t0tmp; \ } while (0) #define T0_ROT() do { \ uint32_t t0tmp = *(dp - 3); \ *(dp - 3) = *(dp - 2); \ *(dp - 2) = *(dp - 1); \ *(dp - 1) = t0tmp; \ } while (0) #define T0_NROT() do { \ uint32_t t0tmp = *(dp - 1); \ *(dp - 1) = *(dp - 2); \ *(dp - 2) = *(dp - 3); \ *(dp - 3) = t0tmp; \ } while (0) #define T0_PICK(x) do { \ uint32_t t0depth = (x); \ T0_PUSH(T0_PEEK(t0depth)); \ } while (0) #define T0_CO() do { \ goto t0_exit; \ } while (0) #define T0_RET() goto t0_next dp = ((t0_context *)t0ctx)->dp; rp = ((t0_context *)t0ctx)->rp; ip = ((t0_context *)t0ctx)->ip; goto t0_next; for (;;) { uint32_t t0x; t0_next: t0x = T0_NEXT(&ip); if (t0x < T0_INTERPRETED) { switch (t0x) { int32_t t0off; case 0: /* ret */ t0x = T0_RPOP(); rp -= (t0x >> 16); t0x &= 0xFFFF; if (t0x == 0) { ip = NULL; goto t0_exit; } ip = &t0_codeblock[t0x]; break; case 1: /* literal constant */ T0_PUSHi(t0_parse7E_signed(&ip)); break; case 2: /* read local */ T0_PUSH(T0_LOCAL(t0_parse7E_unsigned(&ip))); break; case 3: /* write local */ T0_LOCAL(t0_parse7E_unsigned(&ip)) = T0_POP(); break; case 4: /* jump */ t0off = t0_parse7E_signed(&ip); ip += t0off; break; case 5: /* jump if */ t0off = t0_parse7E_signed(&ip); if (T0_POP()) { ip += t0off; } break; case 6: /* jump if not */ t0off = t0_parse7E_signed(&ip); if (!T0_POP()) { ip += t0off; } break;g case {0}: {{ /* {1} */ {2} }} break;�? } } else { T0_ENTER(ip, rp, t0x); } } t0_exit: ((t0_context *)t0ctx)->dp = dp; ((t0_context *)t0ctx)->rp = rp; ((t0_context *)t0ctx)->ip = ip; }5code length: {0,6} byte(s)5data length: {0,6} byte(s)Gtotal words: {0} (interpreted: {1})'No such word: '{0}'"`0x0X0b0BEinvalid literal integer (overflow)!not an integer: /Not in compilation mode%{0:X2}%{0:X2}%{0:X2}+%{0:X2}%{0:X2}%{0:X2}*/ %2A/5EOF reached (missing name)1C code already set for: ?EOF reached (missing min value)?EOF reached (missing max value)-min/max in wrong order;EOF reached (while compiling)(7Invalid stack effect syntax'Not a string: '{0}'Not compiling'No word defined yet5Address is not a data area+No current data block3Byte value out of range: %No next word (EOF)/No next character (EOF)3Cannot add '{0}' to '{1}'C-only word: +'{0}' is not a string9No coroutine in compile mode'Invalid shift count {0})value is not an xt: {0}+{1}MCannot evaluate C-expr at compile time+(uint32_t)({0}) + {1}+(uint32_t)({0}) - {1} null <'{0}>?control-flow stack is not emptynot an origin#not a destinationno such local: 5local already defined: {0}Acannot run '{0}' at compile-timeCWord does not yield code elementsCcircular reference in blobs ({0})Ydata word '{0}' based on non-data word '{1}'yIn word '{0}', offset {1}: stack action mismatch ({2} / {3})9recursive call detected in 'ecall from '{0}' to '{1}' with unknown stack effects'{0}': exit stack action mismatch: {1} / {2} (offset {3})€ƒword '{0}': computed stack effect {1} does not match declared {2}{§«"6D±¿QBO–Ù  h 8t,|tX  |xx$`\8€Œ      AAE     M         U Y Y ee ]  €ˆuy| }xy|  €…||e| y $ €�€‘| €‰€‰|$e$ $€‘$€‰$  €™ y €�€‘€‰ €�€� €¡€¡        €�8            h        \        8, t tt tt t , ( | |\ $\    pdpdhXX  X€�1\ e 1 €ˆ€Œ €ˆX€Œ€ˆ X X  X    |(88t|  €èQ|€…||||e|| $|€‰|$e$$€‰$|€‰||€‰|  |€‰| e$€‰$  y€‰€¡e  $€‰$ || t t      (tttd ttdd tt t t  ttt €”|XtXt| ttd| t \( t ` $ $ \    |  `  ptttttttt ttttttt t X 8 8 p \X | $  \$ \€€$ 8 8 \8|88|$88$    8|XXXX \€Œ \X€Œ  €±(€µ €±(( (($((|( (X(\(8TWrapNonExceptionThrows·z\V4à‰H3^3 P3_CorExeMainmscoree.dllÿ% @€0€HX@ˆˆ4VS_VERSION_INFO½ïþ?DVarFileInfo$Translation°èStringFileInfoÄ007f04b0Comments $CompanyName ,FileDescription 0FileVersion0.0.0.00InternalNameT0Comp(LegalCopyright ,LegalTrademarks @ OriginalFilenameT0Comp.exe$ProductName (ProductVersion 0 p3