MZ�ÿÿ¸@€º´ Í!¸LÍ!This program cannot be run in DOS mode. $PELà N4 @@ €@…4K@à`  H.textT  `.rsrcà@@@.reloc `@B04Hü£ø�ކêŽ( }}}}*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}*Š( �}}} *0;{ s } {} {} }}*Ò{ { }{ { }{ { } *&{X*0"{%{% Y}�q*0W{Ži %{X% }@b� {( }{{��*f{{Y�q*0U{{Y�q {{YY{{Y( {{��*0U{{�q {{Y{{YY( {{Y��*^{ { �q*b{ { ��*j( } �} *:( (*{*"}*{*"}*.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 <Ðÿÿÿ*:(}*0@98 {( (  €@ X 8 (X *"}*0H{9(?{o< €*{o((XY*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!(3{%{% X}œ*0>(3{%{% X}cÒœ{%{% X}Òœ*0[(3{%{% X}cÒœ{%{% X}cÒœ{%{% X}Òœ*0x(3{%{% X}cÒœ{%{% X}cÒœ{%{% X}cÒœ{%{% X}Òœ*0R ( o ŽiX(3{{Ži( {{ŽiXœ%{ŽiXX}*r?{Y>s z*J(9{œ*F(9{‘*z(9{‘b{X‘`*²(9{‘b{X‘b`{X‘`*ê(9{‘b{X‘b`{X‘b`{X‘`*0n s 8^(@ :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 {?âÿÿÿ*( *.råps z.r ps z * * * * **"(N*:(B}*z{9 r-ps z}*6{o*v{: r]ps z{*F{os!*®r‹p{: r—p8 {o( *:(B}*6{o *0' |{lu :*oôoò*0$ |{lu :8oà*0ê|{l:|(ýs'*|{lu 9-|{k9 r­ps zoòos'*|{lu 9|{koào0Xs'*|{lu 9|{ks$*róp|{lo o ( s z *rr9p|þo ( *:(B} *N{ oo *6{ s** *ZrGp{ Œ( *2 €(a*:(B}!*{!*R%{{!X}*Ž{! €; r[ps z}!*VšX{!Xšo*(`*"(a*0o  (ü9(c* *s*²oI €@r‡p*r«poIŒ( *(`*"(a*0o  (ü:(c* *s*²oI €@rÅp*rïpoIŒ( *(`*"(a**oIþ*s*²oI €@rp*r/poIŒ( *:(B}"*N{"o o*6{"s** *ZrEp{"Œ( *(B*o* *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 })(1 s2 }+s3 }.(1 s4 }/}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    8zšr«po : o ÝPr¯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?|ýÿÿo$ :(�:rïp o$ : rÑpo : s�}6}7}8(% rûpo& s' o¢Ý9o( Üo) 8;(* rp(+ (, o¢Ý9o( Ü(- :¹ÿÿÿÝþo( Ü o. o¥Ýo (/ (0 Ý*Ad'ao>Q�±± 0Mrp(/ rmp(/ rp(/ rp(/ r«p(/ rÕp(/ rp(/ (0 *>~%(‘*0I{+o5 9r÷ p( s zs[ oo{+o6 *0%{5% jX}5*0’{( ? €}(8) €>Xe}( 8 {'o7  @A{(?{(  €}(8 {'o7  ; }( *0^<*{(<'{( €; r% ps z}(8" ; rc ps z{(Xe}(*0Ÿ{* 9 }**{)o8 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 @o9 \;o9 *o ?™o9 \@‹o9 x; u;-8Po @o (ž ?Ñ*8Fo @o (ž ?Ñ*8o @ o9 (›*8r_ p( s z0>   8% o9 (Ÿ<*bX X o ?Ïÿÿÿ*0A0? 9=0Y*A? F=7Y*a? f=WY**0K s 8;(“ <r� pŒ( s z@o *Ño &8Àÿÿÿ& þþ*0’}'}(rÇ pþØs^s[ s � %sN¢%þss¢ }1o82{198'{%{%X}š oC8Éÿÿÿ*0ñ(• :{09 rÙ ps z}1*(© (§ 9 9r p( s z{09V9{-o68: 9( o9 o8 {- o88 {-o7859 o 8# 9 o8r] p( s z*0{/o: &*0¢ (1 s2 s<  8< š o5 98 (¦oo6 o= X Ži?ºÿÿÿ8qo> o"o? 87(@ oo5 9Ýoo6 o= (A :½ÿÿÿÝþ o( ÜoB =ƒÿÿÿ{69ª  8”  š  oC   o%r… p  o&Œ o'Œ(D  o&{7>r¿p r« p(E s z o'{8>r¿p rá p(E s z X   Ži?aÿÿÿsF  oG oH 8ToI o#oJ 8(K  o.oL (M :ÛÿÿÿÝþo( ÜoN : ÿÿÿÝ9o( Ü oO oP 8oQ o1o2XoN :ÖÿÿÿÝ9o( ÜsR sR sS oG oH 8ÕoI o(¤:(u"9rpo( s zÝŽoT 9>oU %%oV rQpo(¬(E oW 8)%XoX o(¬oW ooX ooN :ÿÿÿÝ9o( ÜoG oH !8B!oI   o(¤9Ý"%X" o"oX  "o!oN :²ÿÿÿÝ!9!o( ÜY#%&8%%&š$$(¤9 rUps z&X&&%Ži?ÐÿÿÿsY '#�(oG oH *8H*oI ))o(¤9Ý('oZ +)'o$()oY'+o[ ¢*oN :¬ÿÿÿÝ*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öpoa 3Ns99o oO oP ;8;oQ ::9oA;oN :âÿÿÿÝ;9;o( Ü3o 3rRpob 3o 3rXpoa 3Ns9,=>8=>š<<9-o&>X>>=Ži?Üÿÿÿ3o 3rRpob 3o 3r´poa ?88?9 3,o 3o 3rþp(?šoŒo ?X??(Ži?½ÿÿÿ3o 3rRpob 3o 3rpŒo_ 3o 3rprBpo_ 3o 3rprápo_ 3o AB88ABš@3r0pr\p@(E @oC oŒo` BXBBAŽi?½ÿÿÿ3o -93rprjpo_ 83rpr¾po_ 3o 3r& pob 3r0 po_ 3rprZ po_ sc Cod oe E8Eof DCDoU Dog EoN :ÙÿÿÿÝE9Eo( ÜCoh oi G8.G(j F3r33pFŒFoV CFok ol G(m :ÆÿÿÿÝGþo( Ü3r›3pob {3o) I8I(* H3o 3rpHo_ I(- :ÖÿÿÿÝIþo( ÜÝ393o( ÜJ,LM8LMšKJK-oXJMXMMLŽi?ÚÿÿÿN oO oP P8PoQ ONOo2XNPoN :ßÿÿÿÝP9Po( ÜrÜ4pJŒ(+ r5pŒ(+ rH5p#XŒ#Œ(n *AT|MÉÈ/÷¬j64jžë‰©Xo^Í'4[ž(ÆÕ1 # Dg Ž 4 °%Õ * +U 0!(§ 9*r�5p( s z0{+oo &*: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 :*  \8Mo9 (Ÿ? jn?*C Z YC X Xo ?¥ÿÿÿ 9 €C  e 9 rØ5ps z ( �*0+(©:r6po ( s z(*^{0: r@6ps z*0ø s   8Ç o9 !?~=%; o &8– <rp6pŒop &8t <.r€6pc À`Œ?_ €`Œoq &8;rž6p c à`Œc?_ €`Œ?_ €`Œor & X o ?-ÿÿÿo rÊ6prÐ6pos *0j!o  {lu:r:pŒ( s zo ( o ( þo sä(û o *.r<:ps zsy 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 *0rž:po  þo (z *0;)o Y 8#rž:po  þo (z Y <Öÿÿÿ*Fo (({ *0rpo  þo (z *(| *0=*o  þo o  þo ( (o *"(£*( *0a{‰(• : rÚ6ps z{‰{/ot 9r7p( s z{‰{/{‰(–ou *0¯+s‰ }‹{‰(•}Š{Š: rÚ6ps z{‰{ŠþŠs^(� {‰{/{Šot 9r7p{Š( s z{‰{/{Š{‰(—ou o*r{‰{2{‰(–o *r{‰{3{‰(–o *0³,{‰(• : rB7ps z{‰(ª {‰(• : r‚7ps z{‰(ª < rÂ7ps z{‰(–o sä(û{‰{09{‰{- o68 o *0ã-{‰(• : rÚ6ps z{‰{09 {‰{.{‰{-ov 8 {‰}0{‰{‰s(}-{‰(• : rð7ps zr,8p( 99{‰(™ („: r08ps z{‰{-o*8 {‰}**0¿.o ( o ( o  {lu:rh8pŒ( s zþo {‰{09 {‰{.{‰{-ov 8 {‰}0{‰{‰ s(}-{‰{-s�o**0Ç/{‰{0: r�8ps z{‰{-o+ o {‰{+o5 9r÷ p( s z{‰{+o6 {‰},{‰{.ow > {‰{‰{.ox }-8{‰}-{‰}0*¶{‰{,: r¬8ps z{‰{,o*Š{‰(«{‰{-o o6*0*{‰(«{‰{-o  (o=*0${‰(«{‰(• : rÚ6ps z{‰(© {‰(§ 9 9r p( s z9,{‰{-o6{‰{-{‡o88� 9X o9{‰{- o882{‰{- sïsûo6{‰{-{ˆo882{‰{-sîsûo6{‰{-{ˆo8*Î{‰{‰s-}4{‰{4sÞsûo *0�0o  þo o  {lu : rÔ8ps z{‰ oà{ksG{‰{+o5 9r÷ p( s z{‰{+o6 {‰},*0G{‰{4: r 9ps z{‰{4o2{‰{4sÞsûo *0b{‰{4: r 9ps zo ( ?  ÿ>r69pŒ( s z{‰{4Òo4*00{‰(«{‰{-o  þo o:*00{‰(«{‰{-o  þo o;*r{‰(«{‰{-o?*r{‰(«{‰{-oC*r{‰(«{‰{-oD*r{‰(«{‰{-oF*r{‰(«{‰{-oE*r{‰(«{‰{-oA*r{‰(«{‰{-o@*r{‰(«{‰{-oB*ž{‰(«{‰{-o (o/*ž{‰(«{‰{-o (o.*00{‰(• : rj9ps z{‰(¨o *0,1o ( {‰(  {‰(¨o *0+{‰(“ < r�9ps z( o *0{‰(• sîsûo *0o  {‰(*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Œ( *þ*:(Ù(á*~(Ùs-(á(ào8*{e*"}e*N(à{ko?*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þ*V(Ù(ñ(ó*j(Ùo(ñ(ó*{i*"}i*{j*"}j*z(ò:(ðo¦(ó*R(ô(òo*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*&(ýÑ*&(ýÑ*"(ý*"(ý*‚( ((~%(*{m*"}m*{n*"}n*{o*"}o*{p*"}p*{q*"}q**Zr ;p(( s z{r*"}r*s *s€ *.râ;ps z*093( („:*(…9*(ƒ(‚Y(~ * *0\( }s}t�}u}vs� }ws }xsR }y}z~%(**{{*"}{*0‹{v; r&<ps z{z:"{w{wo‚ Yoƒ oH9(>{s{t{yo„ {wo… {xo. sM ()o*&(-*‚{wo† {xo }z*0C{u{vY” {u{vYY{u{vY( {u{vž*0{u{vY” (0*0N4{uŽi %{vX% }v@b� {u( }u{u{vž*0{u%{v% Y}v”*J{wo‚ (0*V{wo‚ eY(0*0(1 < rf<ps z*0(1 ? r‚<ps zeY*6sT(,*0k5re po 9o  8  {yo" 9(9sw(,8 s[(,8 sM(-*:sN(-*6sM(-*06{yo" 9s[(,8r¦<p( s z*06{yo" 9sw(,8r¦<p( s z*ê{yo‡ 9rÆ<p( s z{y{yo„ oˆ *Îoò:sMoð(-8oòsN(,*2s|(,*J(2sr(,*J(2sf(,*J(2sl(,*0/(4 {woƒ {wo‚ YYoE}z*(3*0"(5 {wo‚ YYss(,*0"(5 {wo‚ YYsg(,*0"(5 {wo‚ YYsm(,*–(}|}~s�(*–(}}}~s�(*0š6{|9*{9rü<p(( s z}({}o¦u  :r@=p({}( s zo{|}|%{~{~X}~}*Žo{~{|sÞsûo *07os€ {|o‰ *öos!oŠ {|o0{~Xs'oŠ s!oŠ *‚((Q}‚(O*{€*"}€*{�*"}�*0Z1{‚:* 81{‚š :8(Pš(o¦oDX {‚Ži?Áÿÿÿ}‚*fo(P(No*0J8os (P  8% š (oF9o‹ X Ži?Òÿÿÿ*0J9os€ (P  8% š (oG9o‰ X Ži?Òÿÿÿ*0‹:o(PŽi �  8(PšoK¢X ?åÿÿÿ 8(P š oL X ?æÿÿÿ(Ns!oŠ 8šoŠ X?èÿÿÿ*0Z” €@ž*”;<rš=p�%(¢%Œ¢%”Œ¢%Œ¢(Œ s z*0(;{ƒ 9 ; 88*r>p(r¿p(E s z}ƒ(PŽi �  8  €ž X ?íÿÿÿž� €   8Ö(Pš  oH ” u 9« (oFo%o(„:rN>p(o( s z(…9  8(ƒ(‚Y o&X(   o'(   (‚Y(~  8† u9c €@ 8F;=r´>p�%(¢%Œ¢%Œ¢%Œ¢(Œ s z8 oJ X(  X (~   oI9!XX%Xž(W&X 9(W:<%X”888%þÿÿ }„(NX X}… €@ e(�8 e eX(�((„9O((‹:8r(?p(þo (þo (� s z8(}ƒ*6o%{„*6o%{…*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/È#Strings ŠN Š^ Šn Š~ ŠŽ Šž Š® о ŠÎ ŠÞ Šî Šþ Š Š Š. Š> ŠN Š^ ŠÝfó<øü<(.0j4nH\<cy0–<­n°<µr½ÃvÈ_~ß\y0êfï<ü\0ȆFS`Ê|�…�Žn� <Ï ûP ƒ}t �] �À ƒÒ+\!ƒÒ²ÿ!ƒ}�$"ƒb 0k"ƒ`� "ƒh ž¬"ƒß =Ü"ƒÚ B?#ƒr P \#ƒw - À#ƒ{ - !$ƒ€ P 9$ƒ‰ [ R$ƒ}bm$ƒ}�|$ƒ’ ž„$ƒž -�$ƒª ž•$ƒ¹ -ž$ÃÈ iÃÖ oÃà tª$“ç {Ø$“õ {@%“‰Ë%ƒ}˜Ü%ÃÖ o(&ÃÈ i4&�ž ˆ&Ãà t î&ƒ}˜"ý&ÃÖ o#'Ãà t$<'ƒ}¢&\'ÃÖ o)œ'Ãà t* (ƒ}ª,#(ÃÖ o.L(Ãà t/�(ƒ}°1£(ÃÖ o3Ì(Ãà t4 )ƒ}¶64)ƒ!¼7<)�(À7E)ƒ’ ž8M)ƒž -8V)ƒ¡ž9`)�/-9¸)ƒ6+:è)ƒ;-;4*ƒA-<œ*ƒG-= +ƒM²>~+�WÑ?›+ƒb×A®+ƒgÝCÀ+ƒmâDß+ƒtâE ,ƒ{âFH,ƒÉGÄ,�‚íH°-ƒà üIâ-ƒ}�JÃ�Jê-ÑKö-ß-L.ëM.øN.à Å|O .à ØžO.à åžOÃõO.Ã!O.ƒ}�Q.ƒ}Q+.ÑRJ.Ã�SX.ëTv.ÃõUˆ.ÆÉäU´.ƒ}BUÃ.Ã�VÔ.ëW/øX8/ÃõY.0ÃåžY10ÆÉäYN0ƒ}-Y]0Ã�Zq0Ãõ[0Ãåž[‚0ÆÉä[™0ƒ}�[¦0ƒ}-[µ0ÃØž\½0Ã�\Ò0ß-]ö0Ã!^ 1ƒ}�`1ƒ}-` 1Ã�aG1ÃåžbJ1ÃõbR1ÆÉäb1ƒ}�b‡1ƒ}-b�1Ã�c·1Ãåždº1ÃõdÂ1ÆÉädï1ƒ}�d÷1ƒ}-d2ÃÅ|e 2Ãõe2ÆÉäe@2ƒ}-eO2Ã�fc2Ãõgq2Ãåžgt2ÆÉäg‹2†}�g“2Ã�g›2ÃÅ|hž2Ãõh¦2ÆÉäh­2ƒ}ÑhÑ2ƒ žjÙ2ƒžjá2ƒ |jï2ƒ,|j 3–3<j13–7<l\3ÆEDn}3ÆLžo”3ÆÉäoô3ƒXIog4‘`p„4�}�pA–qUppnƒd?Änƒk@4oƒrApoƒzB¬oƒ‚CÉoƒŠDæoƒ’EpƒšF pƒ¢G=pƒªHZpƒ²IwpƒºJ”pƒÂK¼pƒÊLäpƒÒM qƒÚNXqƒâO�qƒêP¼qƒòQÞqƒúR÷qƒSrƒ TDrƒUdrƒVs†}�W&sƒW¡¸Ã“óì¶ÃÃÃ��¶ô¬U \ \ \ LU \ \`c gl gl |€“...Žc«c¶cccccc ÙU‘||ÝcUUÙ|\Ù||�ّّÝc‘ّّ�ÙÙ–š Ž°n ðn x Þ x x ž « Žž · ž º Ù°½ Å Í °°Ž�   � ŽÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙè í |Ùí    Ží  óøüí í cc¶í í  °U||Ùí  ..“.0|Ù¶\\\\\\\\¶¶¶¶¶¶¶¶ °Ù ­°  ! ÃÃ.¶U) U°°1 7  °êü °ïüÙ  °¬ÃÈÙ : = ž  °Ã °x ÃÙ? F ÙÙM ? V ÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙã A}� ƒ� �“ �˜Q¡žY¾¢a}�i}²Q*·y}½Q*Ì‘ŠÓ™™Ù™¢Þ¡}�}�AÉäÒèQãîAêô©÷äQãù }�Q$ / Q3Q?QIQQäQ? Qbä}-/2g:QsC Œž¹±K¹ÆPÉ}VÑ� \!káƒpé:vC| L€áƒ†ñ`‹ù£•$}£,}�4}£<„ Å<� 2™ ž  -Q­ ËDg:}�L}�Lõ Lý kT\\!k\C|LŒž< íáƒôQãüd}�< lt!k|\„!kŒ� 2„C|9C|Œ ”œ!k}�¤}�¬„ Ŭ í´ í´� 2¬� 2¼}�¼Œž¼ r¼L€éb x z ² ƒ˜ ƒ �² ƒ²Ä}�¬† ŽÌÔ!kÄ� 2Ć ¦Üºä!kÄ í ƒÎäC|áƒÖ<g:£ Ý£ ä£ ìQ° õD„ ÅD� 2,Ú ,Œž,ß ki}�á�pá�áƒYû ä‘ ÓT}�|}�ì}�쌞ì rŒžìL€ì/ „ Å� 2|/ ¼/ T/ Q*Q*‰}�.sÑÁ;­ÁSÃá;­áSÃ@;­`;­€;­ ;­A;­ASÃa;­aSÃ;­À;­à;­;­ ;­!;­A;­a;­�;­¡;­Á;­á;­;­!;­A;­a;­�;­¡;­Á;­á;­ ;­! ;­A ;­a ;­� ;­¡ ;­Á ;­á ;­ ;­! ;­A ;­a ;­� ;­¡ ;­Á ;­á ;­ ;­! ;­A ;­a ;­� ;­¡ ;­Á ;­á ;­ ;­! ;­A ;­a ;­� ;­¡ ;­¡ SÃ! ;­! SÃA ;­A Sá ;­¡ SÃÁ ;­Á SÃá ;­á SÃ;­SÃ!;­!SÃA;­ASÃa;­aSÃ;­SÃ!;­!SÃÄÛ­ ;­À;­à;­;­ ;­@;­`;­€;­ ;­À;­à;­;­ ;­@;­`;­€;­ ;­À;­à;­;­ ;­@;­`;­€;­ ;­À;­à;­;­ ;­@;­`;­€;­ ;­À;­à;­;­ ;­@;­`;­€;­ ;­À;­à;­;­;­ ;­;­ ;­@;­`;­€";­ ";­À";­à";­#;­ #;­@#;­`#;­€#;­ #;­$;­ $;­ %;­@%;­À);­à);­*;­ *;­'8HV‚��ÅÌçó).3O[¥«¯´ÁÅÒÚîù4%8O]fnz†�“˜Ÿ¨²ºÀÈÎÚ¾Ð×öü0AS     %!&²£¸£À£Ë£Ó§¸£Ö£Ý«ì£õ£õ£õ£ì£õ£õ£Ý«õ£Ý«££««¯$´)¸0«5£9½­Á>«$´H£MÆY´_£l£MÆ{£…Ë_£l£ . / 0 1 2HIJY^biot!z#~%‚'ƒ)„+…-à/á/ð1ñ1ò3ó3ü5ý7þ9;;==??AACC E!E&G'I)K*KNMOMPOQOYQZSÿ&e𮵽Ð×ßæ(07>FNV]dk†˜Ÿ²Æ €ð¨ðv±#"$%$BlobWriterCPUFrameCodeElementCodeElementJumpCodeElementUIntCodeElementUIntExprCodeElementUIntIntCodeElementUIntUIntConstDataOpcodeOpcodeCallOpcodeConstOpcodeGetLocalOpcodeJumpOpcodeJumpIfOpcodeJumpIfNotOpcodeJumpUncondOpcodePutLocalOpcodeRetSTypeT0CompTPointerBaseTPointerBlobTPointerExprTPointerNullTPointerXTTValueWordWordBuilderWordDataWordInterpretedWordNativeNativeRunwTextWriterSystem.IOmaxLineLenindentlineLenipBufipOffstackBufstackPtrrspuppersavedIpBufsavedIpOfflocals
k__BackingFieldk__BackingFieldjumpTypetargetvalcxoffval1val2k__BackingFieldbuflennumdispdindoutUNKNOWNBLANKcurrentInputTextReaderdelayedChartokenBuilderStringBuilderSystem.TextdelayedTokenwordsIDictionary`2System.Collections.GenericlastWordwordBuildersavedWordBuildersStack`1allCCodecompilingquitRunLoopextraCodeList`1extraCodeDeferdataBlockcurrentBlobIDenableFlowAnalysisdsLimitrsLimitk__BackingFieldexprminmaxk__BackingFieldk__BackingFieldxptrk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldTCnamecfStackcfPtrcodetoResolveDictionary`2jumpToLastblobbaseBlobNameoffsetongoingResolutionk__BackingFieldk__BackingFieldflowAnalysismaxDataStackmaxReturnStackObjectSystem.ctorWriteLineWritebByteStringget_LengthnumLocalsvArrayCopydepthCompilerGeneratedAttributeSystem.Runtime.CompilerServicesvalueExceptiononeByteCodebwUInt32FormatDebuggerBrowsableAttributeSystem.DiagnosticsDebuggerBrowsableStateInt32ctxelenMathMaxsEncodingget_UTF8GetBytesdlenIndexOutOfRangeExceptionToStringAppendcpugcodeConcatGetTypeTypeget_FullNames1s2objargs<>f__switch$map0StartsWithAddop_EqualitySubstringIndexOfToLowerInvariantTrimTryGetValueSplitStringSplitOptionsget_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_NametpcdownerInt64MindstoprefNamewtargetlnamextsajobjectmethodcallbackresultDoNLEnterget_DepthPeekRotNRotGetLocalPutLocalget_Addressset_Addressget_LastLengthset_LastLengthSetJumpTargetGetLengthEncodeEncodeOneByteEncode7EUnsignedEncode7ESignedget_JumpOffget_IDset_IDExpandAdd8Add16Add24Add32AddStringCheckIndexSet8Read8Read16Read24Read32DecodeUTF8RunResolveTargetResolveJumpGetReferenceGetDataBlockget_MayFallThroughget_JumpDispget_StackActionToCodeElementFixUpget_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_TCset_TCget_Immediateset_Immediateget_Slotset_Slotget_StackEffectset_StackEffectget_CCodeset_CCodeGetReferencesGetDataBlocksGenerateCodeElementsAnalyseFlowget_MaxDataStackget_MaxReturnStackBuildCSRollCSPickCSPushCSPopCSPushOrigCSPushDestCSPopOrigCSPopDestLiteralCallCallExtDefLocalRetAheadAheadIfAheadIfNotThenBeginAgainAgainIfAgainIfNotget_NumLocalsset_NumLocalsget_Codeset_CodeMergeSAInvokeBeginInvokeIAsyncResultAsyncCallbackEndInvokeMulticastDelegateDepthAddressLastLengthJumpOffIDLengthMayFallThroughJumpDispStackActionDataInDataOutIsKnownNoExitBlobNameTargetBoolIntUIntImmediateSlotStackEffectCCodeMaxDataStackMaxReturnStackNumLocalsCodeRuntimeCompatibilityAttributemscorlibt0-kernelT0Comp.exe0x{0:X2}{0}=Code element accepts no targetCCannot encode '{0}' over one byte)Unresolved addressesT0_INT{0}({1})#Not a call opcode#Not a jump opcode/Opcode already resolved-Unresolved call target call UNRESOLVEDECannot compile XT: non-zero offsetECannot embed constant (type = {0}) const getlocal +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}>Acannot run '{0}' at compile-timeCWord does not yield code elements?control-flow stack is not emptynot an origin#not a destinationno such local: 5local already defined: {0}Ccircular 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}qÕ(`(JK¹c.éð…KQ0t h xtX  x||,`\0€Œ     --  AM     U         Y] a a mm e  €ˆ}€�x €…|€�x  €�xxmx €� , €•€™x €‘€‘x,m, ,€™,€‘, €¡ €� €•€™€‘ €¥€¥ €©€©        €�0   0 t tt tt t          h     \             x x\ ,\  pdpdhXX  X€�1\ m 5 €ˆ€Œ €ˆX€Œ€ˆ X X  X    x 00tx  €éQx€�xxxxmxx ,x€‘x,m,,€‘,x€‘xx€‘xx€‘xm,€‘,€�€‘€©m,€‘, xx t t       tttd ttdd tt t t  ttt €”xXtXtx ttdx t \  t ` , \ ,    x  `  ptttttttt ttttttt t \ X x , X 0 0 p \, \€€, \0 0 0x00x,00,   0xXXXX \€Œ \X€Œ  €¹ €½ €¹(( ((,((x( (\(X(0TWrapNonExceptionThrows·z\V4à‰(4>4 04_CorExeMainmscoree.dllÿ% @€0€HX@ˆˆ4VS_VERSION_INFO½ïþ?DVarFileInfo$Translation°èStringFileInfoÄ007f04b0Comments $CompanyName ,FileDescription 0FileVersion0.0.0.00InternalNameT0Comp(LegalCopyright ,LegalTrademarks @ OriginalFilenameT0Comp.exe$ProductName (ProductVersion 0 P4