?_D˙˙˙˙|Ą4+lpM `ˆ Ř‚´‚ ‡ 1G‚ ‚˙‚´C Ěƒ1Gƒ1G(G1ƒ‚ä„€€„€€€ˆ€€€€€Ŕ„˙˙„˙˙˙ˆ˙˙˙˙˙o˙˙†đ˙ƒ˙˙ƒ˙„đđ˙†đđđ˙ƒđ˙ů˙‚˙÷˙‚ű˙÷˙ƒűż˙ó˙ƒńť˙ň ˙ƒż!˙ƒńť˙ü ˙ƒż˙ő ˙ƒńť˙ü ˙ƒť˙ü ˙„ńťż!˙ƒť˙ý ˙„ż˙ű ˙„ńť˙÷ ˙„ż˙ű˙ƒť˙ň˙„ńť ˙…ńťż ˙„ńť˙ƒő˙˙ ťƒąťƒ˙ţ˙ń…˙ţ˙˙˙˙…˙ý˙˙…˙÷˙˙…˙÷˙˙‹ň/˙"ň""/""/"ˆň""ň/˙˙"˙…˙ű˙˙‹ň/˙"ň""/""/"ˆň""ň/˙˙"˙…˙ú˙˙“ň/˙"ň/˙˙"˙˙"˙˙ň/˙ň/˙˙˙–ň/˙"ň/˙˙"˙˙"˙˙ň/˙ň""˙"˙…˙ý˙˙ň"’ň""˙"˙˙"˙˙ň/˙ň""/"˙…˙ő˙˙ň"’ň""˙"˙˙"˙˙ň/˙ň/ň/"˙…˙ţ˙˙–ň/˙"ň/˙˙"˙˙"˙˙ň/˙ň/ň/"˙…˙ö˙˙–ň/˙"ň""/"˙˙"˙˙ň/˙ň""/"˙˙˙–ň/˙"ň""/"˙˙"˙˙ň/˙ň""˙"˙…˙ý˙˙…˙ű˙˙…˙÷˙˙„˙ű˙ ƒ˙ňG˙‚ţ/&;)z4˙˙ ‚ ˙˙˙˙|CONTEXTM™|CTXOMAP@e|FONTÔ[|KWBTREEďh|KWDATAKe|KWMAPŘh|SYSTEMs|TOPICç|TTLBTREE|bm0tkl!^ĚX;ANS94 chapter 6 COREî(Unregistered evaluation copy of HELLLP!(Unregistered evaluation copy of HELLLP!#CB("About_btn","&About","About()")DB(`btn_print')Zmain  ;ĚĚĚĚîĚĄ˘şîíRäR˙˙˙˙ 1˙˙˙˙=1˙˙˙˙˙˙˙˙˙˙˙˙=)ěˇ )5 8€o€€‚€‚€‚‚€€‚‚˙Help file produced byHELLLP!www.guysoftware.com/helllp.html(If this topic is presented in file testing theauthor should use the HELLLP! Ibutton to define a contents topic)1=Z1Œ˙˙˙˙˙˙˙˙Z˙˙˙˙ľ[7)ľ$ €n€˜˜€˙yesyesyesyesANS94 chapter 6 CORE31Chap6yesyes21/07/01BZ÷1¨˙˙˙˙˙˙˙˙÷4ˇLTable of Contents=ľ4( €*€˜˜€€‚˙Table of Contents&÷Z# €€€‚˙Ž4’#ô€8 Ś § ż  "€€ăV­Jż€‰‚˙€ €ăW­Jż‰‚˙€€ăX­Jż‰‚˙€"€ăho€‰‚˙€.€ăY­Jż‰‚˙˙˙!##>#S'ąZš’#ô€> Ś § ż  "€€ăZ­Jż€‰‚˙€ €ă[­Jż‰‚˙€€ă\­Jż‰‚˙€"€ăi}K‰‚˙€4€ă]­Jż‰‚˙˙˙(**/*/MOD+ąj’#ô€> Ś § ż  "€€ă^­Jż€‰‚˙€€ăK=şB‰‚˙€ €ăÜŤJż‰‚˙€*€ăÓŤJż‰‚˙€4€ăÔŤJż‰‚˙˙˙+!+LOOP,-.˛ š’#ô€@ Ś § ż  "€€ăŐŤJż€‰‚˙€€ăÖŤJż‰‚˙€€ăi}K‰‚˙€(€ă׍Jż‰‚˙€4€ăŘŤJż‰‚˙˙˙."//MOD0<0=ąjÍ’#ô€> Ś § ż  "€€ăŮŤJż€‰‚˙€€ăÚŤJż‰‚˙€€ăŰŤJż‰‚˙€&€ăŹJż‰‚˙€2€ăţŤJż‰‚˙˙˙1+1-2!2*2/ź*‰’#ô€T Ś § ż  "€€ă˙ŤJż€‰‚˙€€ăŹJż‰‚˙€ €ăŹJż‰‚˙€0€ăŹJż‰‚˙€B€ăŹJż‰‚˙˙˙2@2DROP2DUP2OVER2SWAP­Í6’#ô€6 Ś § ż  "€€ăŹJż€‰‚˙€ €ăŹJż‰‚˙€€ăŹJż‰‚˙€ €ă2ŹJż‰‚˙€,€ă)ŹJż‰‚˙˙˙:;<<#=š'‰ď’#ô€N Ś § ż  "€€ă*ŹJż€‰‚˙€ €ăý‡뉂˙€€ăşp(‰‚˙€,€ăÁ”@T‰‚˙€B€ă­CMw‰‚˙˙˙>>BODY>IN>NUMBER>Rş(6Š’#ô€P Ś § ż  "€€ăsß ü€‰‚˙€€ă+ŹJż‰‚˙€€ăB\W≂˙€.€ăC\W≂˙€B€ăD\W≂˙˙˙?DUP@ABORTABORT"ABSÁ/ďj ’#ô€^ Ś § ż  "€€ăE\W ‚˙€€ăF\W≂˙€(€ăG\W≂˙€>€ăH\W≂˙€P€ăI\W≂˙˙˙ACCEPTALIGNALIGNEDALLOTANDś$Š ’#ô€H Ś § ż  "€€ăţ‡ë€‰‚˙€€ă˙‡뉂˙€$€ăˆ뉂˙€0€ă¸łÝó‰‚˙€<€ăšłÝó‰‚˙˙˙BASEBEGINBLC!C,ź*j Ü ’#ô€T Ś § ż  "€€ăşłÝ󀉂˙€€ăťłÝó‰‚˙€ €ăźłÝó‰‚˙€2€ă˝łÝó‰‚˙€B€ăžłÝó‰‚˙˙˙C@CELL+CELLSCHARCHAR+Á/  ’#ô€^ Ś § ż  "€€ăżłÝ󀉂˙€€ăŔłÝó‰‚˙€,€ă>˛Ýó‰‚˙€>€ă5˛Ýó‰‚˙€J€ă6˛Ýó‰‚˙˙˙CHARSCONSTANTCOUNTCRCREATEž,Ü [ ’#ô€X Ś § ż  "€€ătß ü€‰‚˙€€ăuß ü‰‚˙€*€ăvß ü‰‚˙€6€ăwß ü‰‚˙€H€ăxß ü‰‚˙˙˙DECIMALDEPTHDODOES>DROPĆ4 ! ’#ô€h Ś § ż  "€€ăyß ü€‰‚˙€€ă. d‰‚˙€ €ă/ d‰‚˙€0€ă0 d‰‚˙€P€ă1 d‰‚˙˙˙DUPELSEEMITENVIRONMENT?EVALUATE˝+[ Ţ ’#ô€V Ś § ż  "€€ă2 d€‰‚˙€€ăé6'‰‚˙€"€ăę6'‰‚˙€2€ăůái‰‚˙€F€ă_Ž­‰‚˙˙˙EXITFILLFINDFM/MODHERE˝+! ›’#ô€V Ś § ż  "€€ă`Ž­€‰‚˙€€ăşp(‰‚˙€€ăşp(‰‚˙€(€ăşp(‰‚˙€B€ăşp(‰‚˙˙˙HOLDIIFIMMEDIATEINVERTť)Ţ V’#ô€R Ś § ż  "€€ăŐĺ31€‰‚˙€ €ă÷9‰‚˙€€ăL=şB‰‚˙€,€ăM=şB‰‚˙€B€ăN=şB‰‚˙˙˙JKEYLEAVELITERALLOOP¸&›@’#ô€L Ś § ż  "€€ăO=şB€‰‚˙€€ăi}K‰‚˙€"€ă i}K‰‚˙€0€ă i}K‰‚˙€>€ă i}K‰‚˙˙˙LSHIFTM*MAXV@ľMINMODż-VŮ@’#ô€Z Ś § ż  "€€ă i}K€‰‚˙€€ă”@T‰‚˙€&€ă|Ŕ]‰‚˙€2€ă}Ŕ]‰‚˙€B€ă7ěĆe‰‚˙˙˙MOVENEGATEOROVERPOSTPONEź*@•A’#ô€T Ś § ż  "€€ăňŠn€‰‚˙€€ăŽCMw‰‚˙€€ăŻCMw‰‚˙€*€ă°CMw‰‚˙€@€ăąCMw‰‚˙˙˙QUITR>R@RECURSEREPEATš'Ů@NB’#ô€N Ś § ż  "€€ă˛CMw€‰‚˙€€ăłCMw‰‚˙€$€ăio€‰‚˙€0€ă?š}‰‚˙€>€ăjo€‰‚˙˙˙ROTRSHIFTS"S>DSIGNĂ1•AC’#ô€b Ś § ż  "€€ăíďW„€‰‚˙€€ăko€‰‚˙€*€ălo€‰‚˙€<€ămo€‰‚˙€P€ăno€‰‚˙˙˙SM/REMSOURCESPACESPACESSTATEˇ%NBČC’#ô€J Ś § ż  "€€ăoo€€‰‚˙€€ă#›Óˆ‰‚˙€"€ă$›Óˆ‰‚˙€2€ăŢƖ‘‰‚˙€>€ăßƖ‘‰‚˙˙˙SWAPTHENTYPEU.U<Ă1C‹D’#ô€b Ś § ż  "€€ăŕƖ‘€‰‚˙€€ăîqٔ‰‚˙€$€ăáƖ‘‰‚˙€8€ăâƖ‘‰‚˙€J€ă™ňYš‰‚˙˙˙UM*UM/MODUNLOOPUNTILVARIABLEˇ%ČCBE’#ô€J Ś § ż  "€€ăTŁ€‰‚˙€€ăUŁ‰‚˙€$€ăJૉ‚˙€2€ă,ŹJż‰‚˙€<€ă-ŹJż‰‚˙˙˙WHILEWORDXOR[[']ś$‹DřE’#ô€H Ś § ż  "€€ă7˛Ý󀉂˙€€ă.ŹJż‰‚˙€ €ă%›Óˆ‰‚˙€0€ă/ŹJż‰‚˙€<€ă0ŹJż‰‚˙˙˙[CHAR]]#TIB.(.Rľ#BE­F’#ô€F Ś § ż  "€€ă1ŹJż€‰‚˙€€ă]ŹJż‰‚˙€€ăŰ-’É‚˙€*€ăTŹJż‰‚˙€8€ăUŹJż‰‚˙˙˙0<>0>2>R2R>2R@ş(řEgG’#ô€P Ś § ż  "€€ăÔ@T€‰‚˙€€ăVŹJż‰‚˙€$€ăzß ü‰‚˙€2€ăJ\W≂˙€D€ă8˛Ýó‰‚˙˙˙:NONAME<>?DOAGAINC"Ć4­F-H’#ô€h Ś § ż  "€€ă9˛Ý󀉂˙€€ă:˛Ýó‰‚˙€*€ă;˛Ýó‰‚˙€@€ă3 d‰‚˙€V€ă4 d‰‚˙˙˙CASECOMPILE,CONVERTENDCASEENDOFŔ.gGíH’#ô€\ Ś § ż  "€€ă5 d€‰‚˙€€ă6 d‰‚˙€(€ăë6'‰‚˙€:€ăaŽ­‰‚˙€H€ă i}K‰‚˙˙˙ERASEEXPECTFALSEHEXMARKER¸&-HĽI’#ô€L Ś § ż  "€€ăĔ@T€‰‚˙€€ă~Ŕ]‰‚˙€€ă8ěĆe‰‚˙€*€ă9ěĆe‰‚˙€<€ă:ěĆe‰‚˙˙˙NIPOFPADPARSEPICKÍ;íHrJ’#ô€v Ś § ż  "€€ăóŠn€‰‚˙€€ă´CMw‰‚˙€(€ăůCży‰‚˙€J€ăľCMw‰‚˙€Z€ă´o‚‚‰‚˙˙˙QUERYREFILLRESTORE-INPUTROLLSAVE-INPUT˝+ĽI/K’#ô€V Ś § ż  "€€ăľo‚‚€‰‚˙€€ăpo€‰‚˙€,€ă&›Óˆ‰‚˙€:€ă'›Óˆ‰‚˙€F€ă(›Óˆ‰‚˙˙˙SOURCE-IDSPANTIBTOTRUEť)rJęK’#ô€R Ś § ż  "€€ă)›Óˆ€‰‚˙€€ăăƖ‘‰‚˙€ €ăäƖ‘‰‚˙€,€ăĺƖ‘‰‚˙€@€ăšňYš‰‚˙˙˙TUCKU.RU>UNUSEDVALUE§!/K‘L†#܀B Ś § ż  "€€ăVŁ€‰‚˙€€ă<˛Ýó‰‚˙€0€ăWŹJż‰‚˙€:€‚˙€>€‚˙˙˙WITHIN[COMPILE]\&ęKˇL# €€€‚˙1‘LčL1W˙˙˙˙˙˙˙˙˙˙˙˙čLM&ˇLM# €€€‚˙1čL?M1l˙˙˙˙˙˙˙˙˙˙˙˙?M†‚V+M•O+ $€W€€€ €‚‚˙Help file produced by HELLLP! v3.1b , a product of Guy Software, on 21/07/01 for Unregistered User.The above table of contents will be automatically completed and will also provide an excellent cross-reference for context strings and topic titles. You may leave it as your main table of contents for your help file, or you may create your own and cause it to be displayed instead by using the I button on the toolbar. This page will not be displayed as a topic. It is given a context string of _._ , but this is not presented for jump selection.ň?Mť( €ĺ€€‚€‚˙HINT: If you do not wish some of your topics to appear in the tab•OťMle of contents as displayed to your users (you may want them ONLY as PopUps), move the lines with their titles and contexts to below this point. If you do this remember to move the whole line, not part. As an alternative, you may wish to set up your own table of contents, see Help under The Structure of a Help File. Do not delete any codes in the area above the Table of Contents title, they are used internally by HELLLP!(•Oă$ €€€‚‚˙>ť!‚* $€(€°€ € € ‚˙6. Glossary >ă_‚( €,€°˜€ € ‚˙6.1 Core words '!‚†‚$ €€R€‚˙2_‚¸‚1î˙˙˙˙˙˙˙˙¸‚á‚ž„!)†‚á‚% €€˜˜€‚˙!c%¸‚Dƒ> L€J€‘€‚H€€€€ƒ€€€€ƒ‚˙6.1.0010 ! ŤstoreťCORET႘ƒ< H€0€Œ˜RQ‚H€€€€€€€‚˙( x a-addr -- )ODƒçƒ6 <€2€Œ˜RQ‚H€€€€€‚˙Store x at a-addr.Œ;˜ƒs„Q r€v€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀€€ă+ŹJż€‰€‚˙See:3.3.3.1 Address alignment, 6.1.0650 @+烞„( €€R‚9€‚˙2s„Đ„1˙˙˙˙˙˙˙˙Єů„Iˆ#)ž„ů„% €€˜˜€‚˙#e*Є^…; F€T€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0030 # Ťnumber-signťCORESů„ą…< H€.€Œ˜RQ‚H€€€€€€€‚˙( ud1 -- ud2 )Ňe^…ƒ‡m ¨€Ë€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€‚˙Divide ud1 by the number in BASE giving the quotient ud2 and the remainder n. (n is the least-significant digit of ud1.) Convert n to external form and add the resulting character to the beginning of the pictured numeric output string. An ambiguous condition exists if # executes outside of a <# #> delimited number conversion.›>ą…ˆ] Š€|€^Œ˜RQł~‚9€ƒƒ€ăX­Jż€‰€€ăho€€‰€€ă2ŹJż€‰€‚˙See:6.1.0040 #>, 6.1.0050 #S, 6.1.0490 <#.+ƒ‡Iˆ( €€R‚9€‚˙3ˆ|ˆ1Â˙˙˙˙˙˙˙˙|ˆŚˆ7‹#>*IˆŚˆ% € €˜˜€‚˙#>n3|ˆ‰; F€f€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0040 #> Ťnumber-sign-greaterťCOREWŚˆk‰< H€6€Œ˜RQ‚H€€€€€€€‚˙( xd -- c-addr u )ȉrŠ? L€‘€Œ˜RQ‚H€€€€€€€‚˙Drop xd. Make the pictured numeric output string available as a character string. c-addr and u specify the resulting character string. A program may replace characters within the string.š=k‰ ‹] Š€z€^Œ˜RQł~‚9€ƒƒ€ăW­Jż€‰€€ăho€€‰€€ă2ŹJż€‰€‚˙See:6.1.0030 #, 6.1.0050 #S, 6.1.0490 <#.+rŠ7‹( €€R‚9€‚˙3 ‹j‹1ĺ˙˙˙˙˙˙˙˙j‹”‹HŽ#S*7‹”‹% € €˜˜€‚˙#Sh-j‹ü‹; F€Z€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0050 #S Ťnumber-sign-sťCORES”‹OŒ< H€.€Œ˜RQ‚H€€€€€€€‚˙( ud1 -- ud2 )4ăü‹ƒQ p€Ç€Œ˜RQ‚H€€€€€€€€€€€€€‚˙Convert one digit of ud1 according to the rule for #. Continue conversion until the quotient is zero. ud2 is zero. An ambiguous condition exists if #S executes outside of a <# #> delimited number conversion.š=OŒŽ] Š€z€^Œ˜RQł~‚9€ƒƒ€ăW­Jż€‰€€ăX­Jż€‰€€ă2ŹJż€‰€‚˙See:6.1.0030 #, 6.1.0040 #>, 6.1.0490 <#.+ƒHŽ( €€R‚9€‚˙2ŽzŽ1‡˙˙˙˙˙˙˙˙ zŽŁŽÂ')HŽŁŽ% €€˜˜€‚˙'^#zŽ; F€F€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0070 ' ŤtickťCORE]!ŁŽ^< H€B€Œ˜RQ‚H€€€€€€€‚˙( Ťnameť -- xt )źqŔK d€y€Œ˜RQ‚H€€€€€€€€€€€‚˙Skip leading space delimiters. Parse name delimited by a space. Find name and r^qŔHŽeturn xt, the execution token for name. An ambiguous condition exists if name is not found.s=^äŔ6 <€z€Œ˜RQ‚H€€€€€‚˙When interpreting, ' xyz EXECUTE is equivalent to xyz.öƒqŔÚÁs ´€€^Œ˜RQł~‚9€ƒ€€ƒ€ă€á牀€€€€ă7ěĆe€‰€€ă-ŹJż€‰€€€€‚˙See:3.4 The Forth text interpreter, 3.4.1 Parsing, A.6.1.2033 POSTPONE, A.6.1.2510 ['], D.6.7 Immediacy.+äŔÂ( €€R‚9€‚˙2ÚÁ7Â1&˙˙˙˙˙˙˙˙ 7Â`ÂUĹ()Â`Â% €€˜˜€‚˙(_$7ÂżÂ; F€H€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0080 ( ŤparenťCOREŹd`ÂkĂH `€Č€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Compilation:Perform the execution semantics given below.Execution:( Ťcccť -- )OżÂřĂ> L€ž€Œ˜RQ‚9€€€€€€€‚˙Parse ccc delimited by ) (right parenthesis). ( is an immediate word.‘_kÉÄ2 4€ž€Œ˜RQ‚9€€€‚˙The number of characters in ccc may be zero to the number of characters in the parse area.v.řĂ˙ÄH `€\€^Œ˜RQł~‚9€ƒƒ€ăK5所€€€€‚˙See:3.4.1 Parsing, 11.6.1.0080 (.+‰Ä*Ĺ( €€R‚9€‚˙+˙ÄUĹ( €€R‚9€‚˙2*ŇĹ1˙˙˙˙˙˙˙˙ ‡Ĺ°Ĺ“Ç*)UĹ°Ĺ% €€˜˜€‚˙*^#‡ĹĆ; F€F€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0090 * ŤstarťCORE-°Ĺ›Ć` €Z€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙( n1|u1 n2|u2 -- n3|u3 )ŚFĆAÇ` €Œ€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙Multiply n1|u1 by n2|u2 giving the product n3|u3.)›ĆjÇ& €€R‚H€‚˙)AǓÇ& €€R‚H€‚˙3jÇĆÇ1#˙˙˙˙˙˙˙˙ ĆÇđÇâË*/*“ÇđÇ% € €˜˜€‚˙*/e*ĆÇUČ; F€T€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0100 */ Ťstar-slashťCOREw#đÇĚČT x€F€Œ˜RQ‚H€€€€€€€€€€€€€€€‚˙( n1 n2 n3 -- n4 )ZÍUČ&ˍ 耛€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚˙Multiply n1 by n2 producing the intermediate double-cell result d. Divide d by n3 giving the single-cell quotient n4. An ambiguous condition exists if n3 is zero or if the quotient n4 lies outside the range of a signed number. If d and n3 differ in sign, the implementation-defined result returned will be the same as that returned by either the phrase >R M* R> FM/MOD SWAP DROP or the phrase >R M* R> SM/REM SWAP DROP.f'ĚȌË? N€N€^Œ˜RQł~‚9€ƒ€ƒ€ă1Ë&㉀‚˙See:3.2.2.1 Integer division.+&ˡË( €€R‚9€‚˙+ŒËâË( €€R‚9€‚˙6ˇËĚ1^˙˙˙˙˙˙˙˙ ĚEĚ|*/MOD-âËEĚ% €€˜˜€‚˙*/MODl1ĚąĚ; F€b€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0110 */MOD Ťstar-slash-modťCORE~'EĚ/ÍW ~€N€Œ˜RQ‚H€€€€€€€€€€€€€€€€‚˙( n1 n2 n3 -- n4 n5 )…ďąĚ´Ď– ú€ß€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚˙Multiply n1 by n2 producing the intermediate double-cell result d. Divide d by n3 producing the single-cell remainder n4 and the single-cell quotient n5. An ambiguous condition exists if n3 is zero, or if the quotient n5 lies outside the range of a single-cell signed integer. If d and n3 differ in sign, the implementation-defined result returned will be the same as that returned by either the phrase >R M* R> FM/MOD or the phrase >R M* R> SM/REM. f'/Í&? N€N€^Œ˜RQł~‚9€ƒ€ƒ€ă1Ë&㉀‚˙See:3.2.´Ď&âË2.1 Integer division.+´ĎQ( €€R‚9€‚˙+&|( €€R‚9€‚˙2QŽ1M˙˙˙˙˙˙˙˙Ž×ó+)|×% €€˜˜€‚˙+^#Ž5; F€F€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0120 + ŤplusťCOREŽ.×Ă` €\€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙ ( n1|u1 n2|u2 -- n3|u3 )ž>5a` €|€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙Add n2|u2 to n1|u1, giving the sum n3|u3.g(ĂČ? N€P€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀‚˙See:3.3.3.1 Address alignment.+aó( €€R‚9€‚˙3Č&1ď˙˙˙˙˙˙˙˙&P+!*óP% € €˜˜€‚˙+!e*&ľ; F€T€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0130 +! Ťplus-storeťCOREVP < H€4€Œ˜RQ‚H€€€€€€€‚˙( n|u a-addr -- )q5ľ|< H€j€Œ˜RQ‚H€€€€€€€‚˙Add n|u to the single-cell number at a-addr.g( ă? N€P€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ〉‚˙See:3.3.3.1 Address alignment.+|( €€R‚9€‚˙6ăD1Ŕ˙˙˙˙˙˙˙˙Dq +LOOP-q% €€˜˜€‚˙+LOOPg,DŘ; F€X€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0140 +LOOP Ťplus-loopťCOREŻmq‡B T€Ú€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: do-sys -- )PŘ×B R€€Œ˜RQ‚9€€€€€€€‚˙Append the run-time semantics given below to the current definition. Resolve the destination of all unresolved occurrences of LEAVE between the location given by do-sys and the next location for a transfer of control, to execute the words following +LOOP. Š?‡aK f€~€^Œ˜RQł~‚9€ƒ€ƒ€€€€€€€€‚˙Run-time:( n -- ) ( R: loop-sys1 -- | loop-sys2 )Źu× 7 <€ë€Œ˜RQ‚9€€€‚˙An ambiguous condition exists if the loop control parameters are unavailable. Add n to the loop index. If the loop index did not cross the boundary between the loop limit minus one and the loop limit, continue execution at the beginning of the loop. Otherwise, discard the current loop control parameters and continue execution immediately following the loop. @aŞ ] Š€€€^Œ˜RQł~‚9€ƒ€ƒăvß ü€‰€€ăşp(€‰€€ăL=şB€‰€‚˙See:6.1.1240 DO, 6.1.1680 I, 6.1.1760 LEAVE.+ Ő ( €€R‚9€‚˙+Ş  ( €€R‚9€‚˙2Ő 2 1(˙˙˙˙˙˙˙˙2 [ R,) [ % €€˜˜€‚˙,_$2 ş ; F€H€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0150 , ŤcommaťCORE= [ ÷ 0 0€€Œ˜RQ‚H€€€‚˙( x -- )]ş T F Z€/€Œ˜RQ‚H€€€€€€€€€‚˙Reserve one cell of data space and store x in the cell. If the data-space pointer is aligned when , begins execution, it will remain aligned when , finishes execution. An ambiguous condition exists if the data-space pointer is not aligned prior to execution of ,.¨Q÷ ü W ~€˘€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀€€€€ăH\W €‚˙See:3.3.3 Data space, 3.3.3.1 Address alignment. 6.1.0710 ALLOT+T '( €€R‚9€‚˙+ü R( €€R‚9€‚˙2'„1˙˙˙˙˙˙˙˙„­A-)R­% €€˜˜€‚˙-_$„ ; F€H€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0160 - ŤminusťCOREŽ.­š` €\€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙ ( n1|u1 n2|u2 -- n3|u3 )ŹL R@` €˜€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙SubtršR@Ract n2|u2 from n1|u1, giving the difference n3|u3.g(šš@? N€P€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀‚˙See:3.3.3.1 Address alignment.+R@ä@( €€R‚9€‚˙+š@A( €€R‚9€‚˙2ä@AA1Ű˙˙˙˙˙˙˙˙AAjAC.)AjA% €€˜˜€‚˙.]"AAÇA; F€D€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0180 . ŤdotťCORE= jAB0 0€€Œ˜RQ‚H€€€‚˙( n -- )T$ÇAXB0 0€H€Œ˜RQ‚H€€€‚˙Display n in free field format.‘LBéBE Z€˜€^Œ˜RQł~‚9€ƒ€ƒ€ă.öĚ剀€€‚˙See:3.2.1.2 Digit conversion, 3.2.1.3 Free-field number display.+XBC( €€R‚9€‚˙3éBGC10˙˙˙˙˙˙˙˙GCqCpF."*CqC% € €˜˜€‚˙."d)GCŐC; F€R€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0190 ." Ťdot-quoteťCOREşrqCDH `€ä€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( Ťcccť -- )ŻvŐC>E9 B€ě€Œ˜RQ‚9€€€€€‚˙Parse ccc delimited by " (double-quote). Append the run-time semantics given below to the current definition.HD†E3 6€*€^Œ˜RQł~‚9€ƒ€ƒ‚˙Run-time:( -- )C>EÉE2 4€"€Œ˜RQ‚9€€€‚˙Display ccc.|.†EEFN l€\€^Œ˜RQł~‚9€ƒ€ƒ€ăK5所€ă/ŹJż€‰€‚˙See:3.4.1 Parsing, 6.2.0200 .(.+ÉEpF( €€R‚9€‚˙2EF˘F14˙˙˙˙˙˙˙˙˘FËFÎI/)pFËF% €€˜˜€‚˙/_$˘F*G; F€H€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0230 / ŤslashťCORE`ËFŠGE Z€6€Œ˜RQ‚H€€€€€€€€€€‚˙( n1 n2 -- n3 )łC*G=Ip Ž€‡€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€‚˙Divide n1 by n2, giving the single-cell quotient n3. An ambiguous condition exists if n2 is zero. If n1 and n2 differ in sign, the implementation-defined result returned will be the same as that returned by either the phrase >R S>D R> FM/MOD SWAP DROP or the phrase >R S>D R> SM/REM SWAP DROP.f'ŠGŁI? N€N€^Œ˜RQł~‚9€ƒ€ƒ€ă1Ë&㉀‚˙See:3.2.2.1 Integer division.+=IÎI( €€R‚9€‚˙5ŁIJ1b˙˙˙˙˙˙˙˙J/J`M/MOD,ÎI/J% €€˜˜€‚˙/MODf+J•J; F€V€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0240 /MOD Ťslash-modťCOREo!/JKN l€B€Œ˜RQ‚H€€€€€€€€€€€€€‚˙( n1 n2 -- n3 n4 )ËR•JĎLy Ŕ€Ľ€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€€€€‚˙Divide n1 by n2, giving the single-cell remainder n3 and the single-cell quotient n4. An ambiguous condition exists if n2 is zero. If n1 and n2 differ in sign, the implementation-defined result returned will be the same as that returned by either the phrase >R S>D R> FM/MOD or the phrase >R S>D R> SM/REM.f'K5M? N€N€^Œ˜RQł~‚9€ƒ€ƒ€ă1Ë&㉀‚˙See:3.2.2.1 Integer division.+ĎL`M( €€R‚9€‚˙35M“M1Ń˙˙˙˙˙˙˙˙“M˝M]O0<*`M˝M% € €˜˜€‚˙0<d)“M!N; F€R€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0250 0< Ťzero-lessťCOREJ˝MkN6 <€(€Œ˜RQ‚H€€€€€‚˙( n -- flag )i6!NÔN3 6€l€Œ˜RQ‚H€€€€‚˙flag is true if and only if n is less than zero.^kN2OB T€8€^Œ˜RQł~‚9€ƒ€ƒ€ăŘŤJż€‰€‚˙See:6.1.0270 0=+ÔN]O( €€R‚9€‚˙32OO1Ó˙˙˙˙˙˙˙˙OşOh0=*]OşO% € €˜˜€‚˙0=f+O,€; F€V€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0270 şO,€]O 0= Ťzero-equalsťCOREJşOv€6 <€(€Œ˜RQ‚H€€€€€‚˙( x -- flag )h5,€ހ3 6€j€Œ˜RQ‚H€€€€‚˙flag is true if and only if x is equal to zero._v€=B T€:€^Œ˜RQł~‚9€ƒ€ƒ€ă1ŹJż€‰€‚˙See:6.1.0250 0<.+ހh( €€R‚9€‚˙3=›1á˙˙˙˙˙˙˙˙›Łuƒ1+*hŁ% € €˜˜€‚˙1+c(›(‚; F€P€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0290 1+ Ťone-plusťCOREp"Ł˜‚N l€D€Œ˜RQ‚H€€€€€€€€€€€€€‚˙ ( n1|u1 -- n2|u2 )‡9(‚ƒN l€r€Œ˜RQ‚H€€€€€€€€€€€€€‚˙Add one (1) to n1|u1 giving the sum n2|u2.V˜‚uƒ: D€8€R‚H€ƒ€ƒ€ăÚŤJż€‰€‚˙See:6.1.0300 1-3ƒ¨ƒ1đ˙˙˙˙˙˙˙˙¨ƒ҃‘…1-*uƒ҃% € €˜˜€‚˙1-d)¨ƒ6„; F€R€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0300 1- Ťone-minusťCOREp"҃Ś„N l€D€Œ˜RQ‚H€€€€€€€€€€€€€‚˙ ( n1|u1 -- n2|u2 )•G6„;…N l€Ž€Œ˜RQ‚H€€€€€€€€€€€€€‚˙Subtract one (1) from n1|u1 giving the difference n2|u2.VŚ„‘…: D€8€R‚H€ƒ€ƒ€ăŮŤJż€‰€‚˙See:6.1.0290 1+3;…ą1ł˙˙˙˙˙˙˙˙ąî…pˆ2!*‘…î…% € €˜˜€‚˙2!d)ąR†; F€R€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0310 2! Ťtwo-storeťCORE`î…˛†B T€<€Œ˜RQ‚H€€€€€€€€€‚˙( x1 x2 a-addr -- ) ¨R†ź‡b ’€Q€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙Store the cell pair x1 x2 at a-addr, with x2 at a-addr and x1 at the next consecutive cell. It is equivalent to the sequence SWAP OVER ! CELL+ !.‰;˛†EˆN l€v€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀€ă˙ŤJż€‰€‚˙See:3.3.3.1 Address alignment, 6.1.0350 2@+ź‡pˆ( €€R‚9€‚˙3EˆŁˆ1ü˙˙˙˙˙˙˙˙Łˆ͈˜Š2**pˆ͈% € €˜˜€‚˙2*c(Łˆ0‰; F€P€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0320 2* Ťtwo-starťCOREQ͈‰< H€*€Œ˜RQ‚H€€€€€€€‚˙( x1 -- x2 )Á†0‰BŠ; D€ €Œ˜RQ‚H€€€€€€‚˙x2 is the result of shifting x1 one bit toward the most-significant bit, filling the vacated least-significant bit with zero.V‰˜Š: D€8€R‚H€ƒ€ƒ€ăţŤJż€‰€‚˙See:6.1.0330 2/3BŠˊ1ô˙˙˙˙˙˙˙˙ˊőŠ¸Œ2/*˜ŠőŠ% € €˜˜€‚˙2/d)ˊY‹; F€R€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0330 2/ Ťtwo-slashťCOREQőŠŞ‹< H€*€Œ˜RQ‚H€€€€€€€‚˙( x1 -- x2 )¸~Y‹bŒ: D€ü€Œ˜RQ‚H€€€€€€‚˙x2 is the result of shifting x1 one bit toward the least-significant bit, leaving the most-significant bit unchanged.VŞ‹¸Œ: D€8€R‚H€ƒ€ƒ€ăŹJż€‰€‚˙See:6.1.0320 2*3bŒëŒ1ž˙˙˙˙˙˙˙˙댍˘2@*¸Œ% € €˜˜€‚˙2@d)ëŒy; F€R€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0350 2@ Ťtwo-fetchťCORE`ٍB T€<€Œ˜RQ‚H€€€€€€€€€‚˙( a-addr -- x1 x2 )´yďŽb ’€i€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙Fetch the cell pair x1 x2 stored at a-addr. x2 is stored at a-addr and x1 at the next consecutive cell. It is equivalent to the sequence DUP CELL+ @ SWAP @.ˆ:ٍwN l€t€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀€ăŰŤJż€‰€‚˙See:3.3.3.1 Address alignment, 6.1.0310 2!.+( €€R‚9€‚˙6w؏1Š˙˙˙˙˙˙˙˙؏ŔZÁ2DROP-˘Ŕ% €€˜˜€‚˙2D؏Ŕ˘ROPf+؏wŔ; F€V€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0370 2DROP Ťtwo-dropťCOREQŔČŔ< H€*€Œ˜RQ‚H€€€€€€€‚˙( x1 x2 -- )i-wŔ1Á< H€Z€Œ˜RQ‚H€€€€€€€‚˙Drop cell pair x1 x2 from the stack.)ČŔZÁ& €€R‚H€‚˙51ÁÁ1Ť˙˙˙˙˙˙˙˙ ÁťÁ5Ă2DUP,ZÁťÁ% €€˜˜€‚˙2DUPe*Á Â; F€T€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0380 2DUP Ťtwo-dupeťCORE-ťÁ­Â` €Z€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙( x1 x2 -- x1 x2 x1 x2 )_#  Ă< H€F€Œ˜RQ‚H€€€€€€€‚˙Duplicate cell pair x1 x2.)­Â5Ă& €€R‚H€‚˙6 ĂkĂ1ű˙˙˙˙˙˙˙˙!kĂ˜ĂbĹ2OVER-5Ă˜Ă% €€˜˜€‚˙2OVERf+kĂţĂ; F€V€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0400 2OVER Ťtwo-overťCOREÉE˜ĂÇÄ„ ؀Š€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚˙( x1 x2 x3 x4 -- x1 x2 x3 x4 x1 x2 )r6ţĂ9Ĺ< H€l€Œ˜RQ‚H€€€€€€€‚˙Copy cell pair x1 x2 to the top of the stack.)ÇÄbĹ& €€R‚H€‚˙69Ĺ˜Ĺ1á˙˙˙˙˙˙˙˙"˜ĹĹĹuÇ2SWAP-bĹĹĹ% €€˜˜€‚˙2SWAPf+˜Ĺ+Ć; F€V€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0430 2SWAP Ťtwo-swapťCOREŤ9ĹĹÖĆr ´€r€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€€€‚˙( x1 x2 x3 x4 -- x3 x4 x1 x2 )M#+Ć#Ç* $€F€Œ˜RQ‚H€‚˙Exchange the top two cell pairs.)ÖĆLÇ& €€R‚H€‚˙)#ÇuÇ& €€R‚H€‚˙2LǧÇ1Ľ˙˙˙˙˙˙˙˙#§ÇĐÇDĎ:)uÇĐÇ% €€˜˜€‚˙:_$§Ç/Č; F€H€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0450 : ŤcolonťCOREg+ĐÇ–Č< H€V€Œ˜RQ‚H€€€€€€€‚˙( C: Ťnameť -- colon-sys )p$/ČĘL f€I€Œ˜RQ‚H€€€€€€€€€€€‚˙Skip leading space delimiters. Parse name delimited by a space. Create a definition for name, called a Ťcolon definitionť. Enter compilation state and start the current definition, producing colon-sys. Append the initiation semantics given below to the current definition.0÷–Č6Ë9 @€ď€Œ˜RQ‚H€€€€€‚˙The execution semantics of name will be determined by the words compiled into the body of the definition. The current definition shall not be findable in the dictionary until it is ended (or until the execution of DOES> in some systems).ƒ;ĘšËH `€v€^Œ˜RQł~‚9€ƒ€€ƒ€€€€€€‚˙Initiation:( i*x -- i*x ) ( R: -- nest-sys )Ύ6ˇĚ@ N€€Œ˜RQ‚9€€€€€€€‚˙Save implementation-dependent information nest-sys about the calling definition. The stack effects i*x represent arguments to name.n)šËőĚE Z€R€^Œ˜RQł~‚9€ƒ€€€ƒ€€€€‚˙name Execution:( i*x -- j*x )Ƀ‡ĚžÍF Z€€Œ˜RQ‚9€€€€€€€€€‚˙Execute the definition name. The stack effects i*x and j*x represent arguments to and results from name, respectively.0¤őĚîÎŒ ć€I€^Œ˜RQł~‚9€ƒƒ€ă€á牀€ăK5所€㓠ă‰€€ăwß ü€‰€€ă,ŹJż€‰€€ă.ŹJż€‰€€€€‚˙See:3.4 The Forth text interpreter, 3.4.1 Parsing, 3.4.5 Compilation, 6.1.1250 DOES>, 6.1.2500 [, 6.1.2540 ], 15.6.2.0470 ;CODE.+žÍĎ( €€R‚9€‚˙+îÎDĎ( €€R‚9€‚˙2ĎvĎ1M˙˙˙˙˙˙˙˙$vĎŸĎł;)DĎŸĎ% €€˜˜€‚˙;c(vĎ; F€P€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0460 ; ŤsemicolonťCOREŸĎDϲpŸĎŔB T€ŕ€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: colon-sys -- )G6 :€#€Œ˜RQ‚9€€€‚˙Append the run-time semantics below to the current definition. End the current definition, allow it to be found in the dictionary and enter interpretation state, consuming colon-sys. If the data-space pointer is not aligned, reserve enough data space to align it.e,Ŕl9 B€X€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙Run-time:( -- ) ( R: nest-sys -- )n<Ú2 4€x€Œ˜RQ‚9€€€‚˙Return to the calling definition specified by nest-sys.ŽTlˆZ „€¨€^Œ˜RQł~‚9€ƒ€ƒ€ă€á牀€㓠ă‰€€ăŹJż€‰€‚˙See:3.4 The Forth text interpreter, 3.4.5 Compilation, 6.1.0450 :+Úł( €€R‚9€‚˙2ˆĺ1î˙˙˙˙˙˙˙˙%ĺË<)ł% €€˜˜€‚˙<c(ĺq; F€P€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0480 < Ťless-thanťCORE^ĎB T€8€Œ˜RQ‚H€€€€€€€€€‚˙( n1 n2 -- flag )x9qG? N€r€Œ˜RQ‚H€€€€€€€€‚˙flag is true if and only if n1 is less than n2.YĎ ? N€4€^Œ˜RQł~‚9€ƒƒ€ăßƖ‘€‰€‚˙See:6.1.2340 U<.+GË( €€R‚9€‚˙3 ţ1&˙˙˙˙˙˙˙˙&ţ(<#*Ë(% € €˜˜€‚˙<#k0ţ“; F€`€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0490 <# Ťless-number-signťCORE3 (Ć* $€€Œ˜RQ‚H€‚˙( -- )g=“-* $€z€Œ˜RQ‚H€‚˙Initialize the pictured numeric output conversion process.š=ĆÇ] Š€z€^Œ˜RQł~‚9€ƒƒ€ăW­Jż€‰€€ăX­Jż€‰€€ăho€€‰€‚˙See:6.1.0030 #, 6.1.0040 #>, 6.1.0050 #S.+-ň( €€R‚9€‚˙+Ç( €€R‚9€‚˙2ňO1Ç˙˙˙˙˙˙˙˙'Ox =)x% €€˜˜€‚˙=`%OŘ; F€J€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0530 = ŤequalsťCORE^x6 B T€8€Œ˜RQ‚H€€€€€€€€€‚˙( x1 x2 -- flag )†GŘź ? N€Ž€Œ˜RQ‚H€€€€€€€€‚˙flag is true if and only if x1 is bit-for-bit the same as x2.)6 ĺ & €€R‚H€‚˙)ź  & €€R‚H€‚˙2ĺ @ 1˙˙˙˙˙˙˙˙(@ i W >) i % €€˜˜€‚˙>f+@ Ď ; F€V€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0540 > Ťgreater-thanťCORE^i - B T€8€Œ˜RQ‚H€€€€€€€€€‚˙( n1 n2 -- flag ){<Ď ¨ ? N€x€Œ˜RQ‚H€€€€€€€€‚˙flag is true if and only if n1 is greater than n2.Y-  ? N€4€^Œ˜RQł~‚9€ƒƒ€ăäƖ‘€‰€‚˙See:6.2.2350 U>.+¨ , ( €€R‚9€‚˙+ W ( €€R‚9€‚˙6,  1e˙˙˙˙˙˙˙˙) ş î>BODY-W ş % €€˜˜€‚˙>BODYe*  ; F€T€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0550 >BODY Ťto-bodyťCOREMş l 6 <€.€Œ˜RQ‚H€€€€€‚˙( xt -- a-addr )΍ :A P€€Œ˜RQ‚H€€€€€€€€‚˙a-addr is the data-field address corresponding to xt. An ambiguous condition exists if xt is not for a word defined via CREATE. ^l ˜? N€>€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀‚˙See:3.3.3 Data space.+:Ă( €€R‚9€‚˙+˜î( €€R‚9€‚˙4Ă"11˙˙˙˙˙˙˙˙*"Mď@>IN+îM% € €˜˜€‚˙>INa&"Ž; F€L€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0560 >IN Ťto-inťCOREBM @0 0€$€Œ˜RQ‚H€€€‚˙( -- a-addr )Ž @îş‹ŽĆ@/ ,€€Œ˜RQ‚H€€‚˙a-addr is the address of a cell containing the offset in characters from the start of the input buffer to the start of the parse area.) @ď@& €€R‚H€‚˙8Ć@'A1˙˙˙˙˙˙˙˙+'AVA5F>NUMBER/ ď@VA% €€˜˜€‚˙>NUMBERj/'AŔA; F€^€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0570 >NUMBER Ťto-numberť CORE™9VAYB` €r€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙( ud1 c-addr1 u1 -- ud2 c-addr2 u2 )K°ŔA¤E› a€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚˙ud2 is the unsigned result of converting the characters within the string specified by c-addr1 u1 into digits, using the number in BASE, and adding each into ud1 after multiplying ud1 by the number in BASE. Conversion continues left-to-right until a character that is not convertible, including any Ť+ť or Ť-ť, is encountered or the string is entirely converted. c-addr2 is the location of the first unconverted character or the first character past the end of the string if the string was entirely converted. u2 is the number of unconverted characters in the string. An ambiguous condition exists if ud2 overflows during the conversion. f'YB F? N€N€^Œ˜RQł~‚9€ƒ€ƒ€ă.öĚ剀‚˙See:3.2.1.2 Digit conversion.+¤E5F( €€R‚9€‚˙3 FhF1˙˙˙˙˙˙˙˙,hF’FaI>R*5F’F% € €˜˜€‚˙>R_$hFńF; F€H€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0580 >R Ťto-rťCOREťs’FŹGH `€ć€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( x -- ) ( R: -- x )R ńFţG2 4€@€Œ˜RQ‚9€€€‚˙Move x to the return stack. ŹG IŒ 怀^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所€ăŽCMw€‰€€ăŻCMw€‰€€ăŰ-’Ă€‰€€ăTŹJż€‰€€ăUŹJż€‰€‚˙See:3.2.3.3 Return stack, 6.1.2060 R>, 6.1.2070 R@, 6.2.0340 2>R, 6.2.0410 2R>, 6.2.0415 2R@.+ţG6I( €€R‚9€‚˙+ IaI( €€R‚9€‚˙56I–I1l˙˙˙˙˙˙˙˙-–IÂIýJ?DUP,aIÂI% €€˜˜€‚˙?DUPj/–I,J; F€^€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0630 ?DUP Ťquestion-dupeťCOREUÂIJ< H€2€Œ˜RQ‚H€€€€€€€‚˙( x -- 0 | x x )S#,JÔJ0 0€F€Œ˜RQ‚H€€€‚˙Duplicate x if it is non-zero.)JýJ& €€R‚H€‚˙2ÔJ/K1â˙˙˙˙˙˙˙˙./KXK M@)ýJXK% €€˜˜€‚˙@_$/KˇK; F€H€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0650 @ ŤfetchťCORELXKL6 <€,€Œ˜RQ‚H€€€€€‚˙( a-addr -- x )Y&ˇK\L3 6€L€Œ˜RQ‚H€€€€‚˙x is the value stored at a-addr.‚7LŢLK f€n€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀€ăV­Jż‰€‚˙See:3.3.3.1 Address alignment. 6.1.0010 !+\L M( €€R‚9€‚˙6ŢL?M1j˙˙˙˙˙˙˙˙/?MlMĽOABORT- MlM% €€˜˜€‚˙ABORTL?M¸M/ .€:€‘€‚H€€€ƒƒ‚˙6.1.0670 ABORT COREUlM N6 <€>€Œ˜RQ‚H€€€€€‚˙( i*x -- ) ( R: j*x -- )ž†¸MËN8 >€ €Œ˜RQ‚H€ăňŠn€‰€‚˙Empty the data stack and perform the function of QUIT, which includes emptying the return stack, without displaying a message.„6 NOON l€l€^Œ˜RQł~‚9€ƒ€€ƒ€€€€ăC\W €‚˙See:9.6.2.0670 ABORT, 6.1.0680 ABORT"+ËNzO( €€R‚9€‚˙+OOĽO( €€R‚9€‚˙7zOÜO1s˙˙˙˙˙˙˙˙0ÜO€S„ABORT". ĽO€% €€˜˜€‚ÜO€ĽO˙ABORT"j/ÜO€€; F€^€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0680 ABORT" Ťabort-quoteťCOREşr€:H `€ä€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( Ťcccť -- )łz€€í9 B€ô€Œ˜RQ‚9€€€€€‚˙Parse ccc delimited by a " (double-quote). Append the run-time semantics given below to the current definition. —C:„‚T x€†€^Œ˜RQł~‚9€ƒ€ƒ€€€€€€€€€€€‚˙Run-time:( i*x x1 -- | i*x ) ( R: j*x -- | j*x )Ží„ƒR r€]€Œ˜RQ‚9€€€€€€€€€ăB\W €‚˙Remove x1 from the stack. If any bit of x1 is not zero, display ccc and perform an implementation-defined abort sequence that includes the function of ABORT.¤J„‚(„Z „€”€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所€€€€ăB\W €‚˙See:3.4.1 Parsing, 9.6.2.0680 ABORT", 6.1.0670 ABORT +„ƒS„( €€R‚9€‚˙4(„‡„1V˙˙˙˙˙˙˙˙1‡„˛„ׅABS+S„˛„% € €˜˜€‚˙ABS_$‡„…; F€H€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0690 ABS ŤabsťCOREG˛„X…6 <€"€Œ˜RQ‚H€€€€€‚˙( n -- u )V#…Ž…3 6€F€Œ˜RQ‚H€€€€‚˙u is the absolute value of n.)X…ׅ& €€R‚H€‚˙7Ž…†1|˙˙˙˙˙˙˙˙2†<†‡ŠACCEPT. ׅ<†% €€˜˜€‚˙ACCEPTM†‰†/ .€<€‘€‚H€€€ƒƒ‚˙6.1.0695 ACCEPT COREb <†ë†B T€@€Œ˜RQ‚H€€€€€€€€€‚˙( c-addr +n1 -- +n2 )㢉†ΈA P€E€Œ˜RQ‚H€€€€€€€‚˙Receive a string of at most +n1 characters. An ambiguous condition exists if +n1 is zero or greater than 32,767. Display graphic characters as they are received. A program that depends on the presence or absence of non-graphic characters in the string has an environmental dependency. The editing functions, if any, that the system performs in order to construct the string are implementation-defined.ůĚë†lj- (€™€Œ˜RQ‚H€‚˙Input terminates when an implementation-defined line terminator is received. When input terminates, nothing is appended to the string, and the display is maintained in an implementation-defined way.n8Έ5Š6 <€p€Œ˜RQ‚H€€€€€‚˙+n2 is the length of the string stored at c-addr.)lj^Š& €€R‚H€‚˙)5Š‡Š& €€R‚H€‚˙6^Š˝Š1˙˙˙˙˙˙˙˙3˝ŠęŠ،ALIGN-‡ŠęŠ% €€˜˜€‚˙ALIGNL˝Š6‹/ .€:€‘€‚H€€€ƒƒ‚˙6.1.0705 ALIGN CORE3 ęŠi‹* $€€Œ˜RQ‚H€‚˙( -- )xN6‹á‹* $€œ€Œ˜RQ‚H€‚˙If the data-space pointer is not aligned, reserve enough space to align it.ĄSi‹‚ŒN l€Ś€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀€ăG\W €‚˙See:3.3.3 Data space, 3.3.3.1 Address alignment, 6.1.0706 ALIGNED.+á‹­Œ( €€R‚9€‚˙+‚Œ،( €€R‚9€‚˙8­Œ1$˙˙˙˙˙˙˙˙4?2ALIGNED/ ،?% €€˜˜€‚˙ALIGNEDN/ .€>€‘€‚H€€€ƒƒ‚˙6.1.0706 ALIGNED COREO?܍6 <€2€Œ˜RQ‚H€€€€€‚˙( addr -- a-addr ){HWŽ3 6€€Œ˜RQ‚H€€€€‚˙a-addr is the first aligned address greater than or equal to addr.…=܍܎H `€z€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝă‰ăF\W €‚˙See:3.3.3.1 Address alignment, 6.1.0705 ALIGN.+WŽ( €€R‚9€‚˙+܎2( €€R‚9€‚˙6h1R˙˙˙˙˙˙˙˙5h•žĂALLOT-2•% €€˜˜€‚˙ALLOTLhá/ .€:€‘€‚H€€€ƒƒ‚˙6.1.0710 ALLOT CORE= •*Ŕ0 0€€Œá*Ŕ2˜RQ‚H€€€‚˙( n -- )Éá>ÁK d€“€Œ˜RQ‚H€€€€€€€€€€€‚˙If n is greater than zero, reserve n address units of data space. If n is less than zero, release |n| address units of data space. If n is zero, leave the data-space pointer unchanged.éŤ*Ŕ'Â> J€W€Œ˜RQ‚H€€€€€€€‚˙If the data-space pointer is aligned and n is a multiple of the size of a cell when ALLOT begins execution, it will remain aligned when ALLOT finishes execution.Ĺ>Á+Ă? L€‹€Œ˜RQ‚H€€€€€€€‚˙If the data-space pointer is character aligned and n is a multiple of the size of a character when ALLOT begins execution, it will remain character aligned when ALLOT finishes execution.h#'“ĂE Z€F€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝă‰ăÜŤJż‰€‚˙See:3.3.3 Data space, ,++ĂžĂ( €€R‚9€‚˙4“ĂňĂ1’˙˙˙˙˙˙˙˙6ňĂÄ~ĹAND+žĂÄ% € €˜˜€‚˙ANDJňĂgÄ/ .€6€‘€‚H€€€ƒƒ‚˙6.1.0720 AND CORE`ÄÇÄE Z€6€Œ˜RQ‚H€€€€€€€€€€‚˙( x1 x2 -- x3 )Ž@gÄUĹN l€€€Œ˜RQ‚H€€€€€€€€€€€€€‚˙x3 is the bit-by-bit logical Ťandť of x1 with x2.)ÇÄ~Ĺ& €€R‚H€‚˙5UĹłĹ1t˙˙˙˙˙˙˙˙7łĹßĹ"ÇBASE,~ĹßĹ% €€˜˜€‚˙BASEKłĹ*Ć/ .€8€‘€‚H€€€ƒƒ‚˙6.1.0750 BASE COREBßĹlĆ0 0€$€Œ˜RQ‚H€€€‚˙( -- a-addr )_*ĆůĆ. ,€ž€Œ˜RQ‚H€€‚˙a-addr is the address of a cell containing the current number-conversion radix {{2...36}}.)lĆ"Ç& €€R‚H€‚˙6ůĆXÇ1‡˙˙˙˙˙˙˙˙8XÇ…ÇŰĘBEGIN-"Ç…Ç% €€˜˜€‚˙BEGINLXÇŃÇ/ .€:€‘€‚H€€€ƒƒ‚˙6.1.0760 BEGIN CORE­k…Ç~ČB T€Ö€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: -- dest )ӟŃÇQÉ4 6€?€Œ˜RQ‚9€€€‚˙Put the next location for a transfer of control, dest, onto the control flow stack. Append the run-time semantics given below to the current definition.H~Č™É3 6€*€^Œ˜RQł~‚9€ƒ€ƒ‚˙Run-time:( -- )BQÉŰÉ, (€,€Œ˜RQ‚9€‚˙Continue execution.Ői™É°Ęl ¨€Ň€^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所€ăąCMw€‰€€ăâƖ‘€‰€€ăTŁ€‰€‚˙See:3.2.3.2 Control-flow stack, 6.1.2140 REPEAT, 6.1.2390 UNTIL, 6.1.2430 WHILE.+ŰÉŰĘ( €€R‚9€‚˙3°ĘË1Q˙˙˙˙˙˙˙˙9Ë8ËXĚBL*ŰĘ8Ë% € €˜˜€‚˙BL^#Ë–Ë; F€F€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0770 BL Ťb-lťCORE@8ËÖË0 0€ €Œ˜RQ‚H€€€‚˙( -- char )Y,–Ë/Ě- *€X€Œ˜RQ‚H€€‚˙char is the character value for a space.)ÖËXĚ& €€R‚H€‚˙3/Ě‹Ě1K˙˙˙˙˙˙˙˙:‹ĚľĚĎÎC!*XĚľĚ% € €˜˜€‚˙C!b'‹ĚÍ; F€N€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0850 C! Ťc-storeťCOREOľĚfÍ6 <€2€Œ˜RQ‚H€€€€€‚˙( char c-addr -- )Ř Í>Î8 >€A€Œ˜RQ‚H€€€€€‚˙Store char at c-addr. When character size is smaller than cell size, only the number of low-order bits corresponding to character size are transferred.f'fͤÎ? N€N€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀‚˙See:3.3.3.1 Address alignment+>ÎĎÎ( €€R‚9€‚˙3¤ÎĎ17˙˙˙˙˙˙˙˙;Ď,ĎC,*ĎÎ,Ď% € €˜˜€‚˙C,b'ĎŽĎ; F€N€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0860 C, Ťc-commaťCORE@,ĎÎĎ0 0€ €Œ˜RQ‚H€€€‚˙( char -- )•OŽĎoF Z€Ÿ€Œ˜RQ‚H€€€€ÎĎoĎ΀€€€€‚˙Reserve space for one character in the data space and store char in the space. If the data-space pointer is character aligned when C, begins execution, it will remain character aligned when C, finishes execution. An ambiguous condition exists if the data-space pointer is not character-aligned prior to execution of C,.<ÎĎđE Z€x€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀€€‚˙See:3.3.3 Data space, 3.3.3.1 Address alignment.+o( €€R‚9€‚˙3đN1(˙˙˙˙˙˙˙˙<NxoC@*x% € €˜˜€‚˙C@b'NÚ; F€N€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0870 C@ Ťc-fetchťCOREOx)6 <€2€Œ˜RQ‚H€€€€€‚˙( c-addr -- char )źŠÚĺ2 2€€Œ˜RQ‚H€€€‚˙Fetch the character stored at c-addr. When the cell size is greater than character size, the unused high-order bits are all zeroes._&)D9 B€L€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙See:3.3.3.1 Address alignment.+ĺo( €€R‚9€‚˙6DĽ18˙˙˙˙˙˙˙˙=ĽŇŮCELL+-oŇ% €€˜˜€‚˙CELL+g,Ľ9; F€X€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0880 CELL+ Ťcell-plusťCORE[Ň”< H€>€Œ˜RQ‚H€€€€€€€‚˙( a-addr1 -- a-addr2 )ˆL9< H€˜€Œ˜RQ‚H€€€€€€€‚˙Add the size in address units of a cell to a-addr1, giving a-addr2.g(”ƒ? N€P€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀‚˙See:3.3.3.1 Address alignment.+Ž( €€R‚9€‚˙+ƒŮ( €€R‚9€‚˙6Ž1˙˙˙˙˙˙˙˙><˜CELLS-Ů<% €€˜˜€‚˙CELLSLˆ/ .€:€‘€‚H€€€ƒƒ‚˙6.1.0890 CELLS COREQ<Ů< H€*€Œ˜RQ‚H€€€€€€€‚˙( n1 -- n2 )m4ˆF9 B€h€Œ˜RQ‚H€€€€€€‚˙n2 is the size in address units of n1 cells.)Ůo& €€R‚H€‚˙)F˜& €€R‚H€‚˙5oÍ1|˙˙˙˙˙˙˙˙?ÍůD CHAR,˜ů% €€˜˜€‚˙CHARa&ÍZ ; F€L€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0895 CHAR ŤcharťCORE_#ůš < H€F€Œ˜RQ‚H€€€€€€€‚˙( Ťnameť -- char )­|Z f 1 2€ř€Œ˜RQ‚H€€€‚˙Skip leading space delimiters. Parse name delimited by a space. Put the value of its first character onto the stack.ˆ4š î T x€h€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所€ă7˛Ý󀉀€‚˙See:3.4.1 Parsing, 6.1.2520 [CHAR].+f  ( €€R‚9€‚˙+î D ( €€R‚9€‚˙6 z 1=˙˙˙˙˙˙˙˙@z § ł CHAR+-D § % €€˜˜€‚˙CHAR+g,z  ; F€X€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0897 CHAR+ Ťchar-plusťCORE[§ i < H€>€Œ˜RQ‚H€€€€€€€‚˙( c-addr1 -- c-addr2 )Q ö < H€˘€Œ˜RQ‚H€€€€€€€‚˙Add the size in address units of a character to c-addr1, giving c-addr2.g(i ] ? N€P€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀‚˙See:3.3.3.1 Address alignment.+ö ˆ ( €€R‚9€‚˙+] ł ( €€R‚9€‚˙6ˆ é 1Š˙˙˙˙˙˙˙˙Aé ŽCHARS-ł % €€˜˜€‚˙CHARSc(é y; F€P€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0898 CHARS ŤcharsťCOREQĘ< H€*€Œ˜RQ‚H€€€€€€€‚˙( n1 -- n2 )r9y<9 B€r€Œ˜RQ‚H€€€€€€‚˙n2 is the size in address units of n1 characters.)Ęe& €€R‚H€‚˙)<Ž& €€R‚H€‚˙9eÇ1W˙˙˙˙˙˙˙˙BÇ @CCONSTANT0 Ž @% €€˜˜€‚˙CONSTANTÇ @ŽO Ç[@/ .€@€‘€‚H€€€ƒƒ‚˙6.1.0950 CONSTANT CORE\ @ˇ@< H€@€Œ˜RQ‚H€€€€€€€‚˙( x Ťnameť -- )ʒ[@A8 >€%€Œ˜RQ‚H€€€€€‚˙Skip leading space delimiters. Parse name delimited by a space. Create a definition for name with the execution semantics defined below.e,ˇ@ćA9 B€X€Œ˜RQ‚H€€€€€€‚˙name is referred to as a Ťconstantť.`!AFB? N€B€^Œ˜RQł~‚9€ƒ€€€ƒ€€‚˙name Execution:( -- x )LćA’B2 4€4€Œ˜RQ‚9€€€‚˙Place x on the stack._FBńBB T€:€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所‚˙See:3.4.1 Parsing.+’BC( €€R‚9€‚˙6ńBRC1|˙˙˙˙˙˙˙˙CRCCĘECOUNT-CC% €€˜˜€‚˙COUNTLRCËC/ .€:€‘€‚H€€€ƒƒ‚˙6.1.0980 COUNT COREd#C/DA R€F€˜RS‚H€€€€€€€€€‚˙( c-addr1 -- c-addr2 u )rËCĄE_ Œ€'€˜RS‚H€€€€€€€€€€€€€€€€€€‚˙Return the character string specification for the counted string stored at c-addr1. c-addr2 is the address of the first character after c-addr1. u is the contents of the character at c-addr1, which is the length in characters of the string at c-addr2.)/DĘE& €€R‚H€‚˙3ĄEýE1Z˙˙˙˙˙˙˙˙DýE'FPGCR*ĘE'F% € €˜˜€‚˙CR^#ýE…F; F€F€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.0990 CR Ťc-rťCORE2 'FˇF) "€€˜RS‚H€‚˙( -- )pG…F'G) "€Ž€˜RS‚H€‚˙Cause subsequent output to appear at the beginning of the next line.)ˇFPG& €€R‚H€‚˙7'G‡G1N˙˙˙˙˙˙˙˙E‡GľGŇKCREATE. PGľG% €€˜˜€‚˙CREATEM‡GH/ .€<€‘€‚H€€€ƒƒ‚˙6.1.1000 CREATE COREQľGSH5 :€8€˜RS‚H€€€€€‚˙( Ťnameť -- )ą`HJQ p€Á€˜RS‚H€€€€€€€€€€€€€‚˙Skip leading space delimiters. Parse name delimited by a space. Create a definition for name with the execution semantics defined below. If the data-space pointer is not aligned, reserve enough data space to align it. The new data-space pointer defines name’s data field. CREATE does not allocate data space in name’s data field.e&SHiJ? N€L€^Œ˜RQł~‚9€ƒ€€€ƒ€€‚˙name Execution:( -- a-addr )źxJ%KD X€đ€˜RS‚9€€€€€€€€€‚˙a-addr is the address of name’s data field. The execution semantics of name may be extended by using DOES>.‚4iJ§KN l€h€^Œ˜RQł~‚9€ƒ€ƒ€ăćűÝ㉀€ăwß ü€‰€‚˙See:3.3.3 Data space, 6.1.1250 DOES>.+%KŇK( €€R‚9€‚˙8§K L18˙˙˙˙˙˙˙˙F L9L@MDECIMAL/ ŇK9L% €€˜˜€‚˙DECIMALN L‡L/ .€>€‘€‚H€€€ƒƒ‚˙6.1.1170 DECIMAL CORE2 9LšL) "€€˜RS‚H€‚˙( -- )^5‡LM) "€j€˜RS‚H€‚˙Set the numeric conversion radix to ten (decimal).)šL@M& €€R‚H€‚˙6MvM1‚˙˙˙˙˙˙˙˙GvMŁMôNDEPTH-@MŁM% €€˜˜€‚˙DEPTHLvMďM/ .€:€‘€‚H€€€ƒƒ‚˙6.1.1200 DEPTH CORE=ŁM,N/ .€€˜RS‚H€€€‚˙( -- +n )ŸlďMËN3 6€Ř€˜RS‚H€€€€‚˙+n is the number of single-cell values contained in the data stack before +n was placed on the stack.),NôN& €€R‚H€‚˙3ËN'O1i˙˙˙˙˙˙˙˙H'OQO„DO*ôNQO% € €˜˜€‚˙DOI'OšO/ .€4€‘€‚H€€€ƒƒ‚˙6.1.1240 DO CORE|JQO"€2 4€”€\˜RSą~‚9€ƒ€ƒ‚˙Interpretation:Interpretation semantics for thisšO"€ôN word are undefined.]$šO€9 B€H€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙Compilation:( C: -- do-sys ) Í"€Œ@ N€›€˜RS‚9€€€€€€€‚˙Place do-sys onto the control-flow stack. Append the run-time semantics given below to the current definition. The semantics are incomplete until resolved by a consumer of do-sys such as LOOP.ŸB€+‚] Š€„€^Œ˜RQł~‚9€ƒ€ƒ€€€€€€€€€€€€€€‚˙Run-time:( n1|u1 n2|u2 -- ) ( R: -- loop-sys )‹Œśƒv ş€+€˜RS‚9€€€€€€€€€€€€€€€€€€€€€€€€€‚˙Set up loop control parameters with index n2|u2 and limit n1|u1. An ambiguous condition exists if n1|u1 and n2|u2 are not both the same type. Anything already on the return stack becomes unavailable until the loop-control parameters are discarded.ŽR+‚d„\ ˆ€¤€\ŒRSą~‚9€ƒ€ƒ€ăŁËŃ所€ăK=şB€‰€€ăN=şB€‰€‚˙See:3.2.3.2 Control-flow stack, 6.1.0140 +LOOP, 6.1.1800 LOOP.+śƒ„( €€R‚9€‚˙6d„ń1Ä˙˙˙˙˙˙˙˙Ińň„…DOES>-„ň„% €€˜˜€‚˙DOES>b'ńT…; F€N€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.1250 DOES> ŤdoesťCOREπň„#†O l€€^Œ˜RQł~‚9€ƒ€ƒ‚ƒ€€ƒ€€€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: colon-sys1 -- colon-sys2 )FT…ł‡J b€€˜RS‚9€€€€€€€€€€‚˙Append the run-time semantics below to the current definition. Whether or not the current definition is rendered findable in the dictionary by the compilation of DOES> is implementation defined. Consume colon-sys1 and produce colon-sys2. Append the initiation semantics given below to the current definition.h,#†ˆ< H€X€^Œ˜RQł~‚9€ƒ€ƒ€€€‚˙Run-time:( -- ) ( R: nest-sys1 -- )šDł‡ľ‰V z€‰€˜RS‚9€€€€€€€€€€€€€€‚˙Replace the execution semantics of the most recent definition, referred to as name, with the name execution semantics given below. Return control to the calling definition specified by nest-sys1. An ambiguous condition exists if name was not defined with CREATE or a user-defined word that calls CREATE.—FˆLŠQ r€Œ€^Œ˜RQł~‚9€ƒ€€ƒ€€€€€€€€€‚˙Initiation:( i*x -- i*x a-addr ) ( R: -- nest-sys2 )Ăľ‰[‹L f€‡€˜RS‚9€€€€€€€€€€€‚˙Save implementation-dependent information nest-sys2 about the calling definition. Place name’s data field address on the stack. The stack effects i*x represent arguments to name.n)LŠɋE Z€R€^Œ˜RQł~‚9€ƒ€€€ƒ€€€€‚˙name Execution:( i*x -- j*x )0ä[‹ůŒL f€É€˜RS‚9€€€€€€€€€€€‚˙Execute the portion of the definition that begins with the initiation semantics appended by the DOES> which modified name. The stack effects i*x and j*x represent arguments to and results from name, respectively.aɋZB T€>€^Œ˜RQł~‚9€ƒ€ƒ€ă6˛Ý󀉀‚˙See:6.1.1000 CREATE.+ůŒ…( €€R‚9€‚˙5Zş1-˙˙˙˙˙˙˙˙JşćâŽDROP,…ć% €€˜˜€‚˙DROPKş1Ž/ .€8€‘€‚H€€€ƒƒ‚˙6.1.1260 DROP CORE< ćmŽ/ .€€˜RS‚H€€€‚˙( x -- )L1ŽšŽ/ .€:€˜RS‚H€€€‚˙Remove x from the stack.)mŽâŽ& €€R‚H€‚˙4šŽ1J˙˙˙˙˙˙˙˙KAuŔDUP+âŽA% € €˜˜€‚˙DUP`%Ą; F€J€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.1290 DUP ŤdupeťCOREPA Ŕ; F€*€˜RS‚H€€€€€€€‚˙( x -- x x )Ą ŔâŽ@ĄLŔ/ .€"€˜RS‚H€€€‚˙Duplicate x.) ŔuŔ& €€R‚H€‚˙5LŔŞŔ1^˙˙˙˙˙˙˙˙LŞŔÖŔĹELSE,uŔÖŔ% €€˜˜€‚˙ELSEKŞŔ!Á/ .€8€‘€‚H€€€ƒƒ‚˙6.1.1310 ELSE COREÄvÖŔĺÁN l€ě€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: orig1 -- orig2 )ą`!Á–ĂQ p€Á€˜RS‚9€€€€€€€€€€€€‚˙Put the location of a new unresolved forward reference orig2 onto the control flow stack. Append the run-time semantics given below to the current definition. The semantics will be incomplete until orig2 is resolved (e.g., by THEN). Resolve the forward reference orig1 using the location following the appended run-time semantics.HĺÁŢĂ3 6€*€^Œ˜RQł~‚9€ƒ€ƒ‚˙Run-time:( -- )~J–Ă\Ä4 8€”€˜RS‚9€€€€‚˙Continue execution at the location given by the resolution of orig2.|.ŢĂŘÄN l€\€^Œ˜RQł~‚9€ƒ€ƒăşp(€‰€€ă#›Óˆ€‰€‚˙See:6.1.1700 IF, 6.1.2270 THEN.+\ÄĹ( €€R‚9€‚˙5ŘÄ8Ĺ1˙˙˙˙˙˙˙˙M8ĹdĹLÉEMIT,ĹdĹ% €€˜˜€‚˙EMITK8ĹŻĹ/ .€8€‘€‚H€€€ƒƒ‚˙6.1.1320 EMIT CORE= dĹěĹ0 0€€Œ˜RQ‚H€€€‚˙( x -- )쨯ĹŘĆD V€Q€Œ˜RQ‚H€€€€€€€€€‚˙If x is a graphic character in the implementation-defined character set, display x. The effect of EMIT for all other values of x is implementation-defined.ćŤěĹžČ; D€W€Œ˜RQ‚H€€€€€‚˙When passed a character whose character-defining bits have a value between hex 20 and 7E inclusive, the corresponding standard character, specified by 3.1.2.1 Graphic characters, is displayed. Because different output devices can respond differently to control characters, programs that use control characters to perform specific functions have an environmental dependency. Each EMIT deals with only one character.cŘĆ!ÉE Z€<€^Œ˜RQł~‚9€ƒ€ƒ€€ă$›Óˆ€‰€‚˙See:6.1.2310 TYPE.+žČLÉ( €€R‚9€‚˙= !ɉÉ1ţ˙˙˙˙˙˙˙˙N‰É˝ÉŠÍENVIRONMENT?4LÉ˝É% €€˜˜€‚˙ENVIRONMENT?v;‰É3Ę; F€v€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.1345 ENVIRONMENT? Ťenvironment-queryťCOREu-˝É¨ĘH `€Z€Œ˜RQ‚H€€€€€€€€€€€‚˙( c-addr u -- false | i*x true )šU3ĘaÍd –€Ť€Œ˜RQ‚H€€€€€€€€€ăqš䉀€€€€€€‚˙c-addr is the address of a character string and u is the string’s character count. u may have a value in the range from zero to an implementation-defined maximum which shall not be less than 31. The character string should contain a keyword from 3.2.6 Environmental queries or the optional word sets to be checked for correspondence with an attribute of the present environment. If the system treats the attribute as unknown, the returned flag is false; otherwise, the flag is true and the i*x returned is of the type specified in the table for the attribute queried.)¨ĘŠÍ& €€R‚H€‚˙9aÍĂÍ1â˙˙˙˙˙˙˙˙OĂÍó͘EVALUATE0 ŠÍóÍ% €€˜˜€‚˙EVALUATEO ĂÍBÎ/ .€@€‘€‚H€€€ƒƒ‚˙6.1.1360 EVALUATE COREd"óÍŚÎB T€D€Œ˜RQ‚H€€€€€€€€€‚˙( i*x c-addr u -- j*x )şhBÎlR r€Ń€Œ˜RQ‚H€ăľo‚‚€‰€€€€€€€€€‚˙Save the current input source specification. Store minus-one (-1) in SOURCE-ID if it is present. Make the string described by c-addr and u both the input source and input buffer, set >IN to zero, and interpret. When the parse area is empty, restoreŚÎlŠÍ the prior input source specification. Other stack effects are due to the words EVALUATEd.)ŚÎ•& €€R‚H€‚˙Nlă/ .€>€‘€‚H€€€ƒƒ‚˙6.1.1370 EXECUTE COREV•9< H€4€Œ˜RQ‚H€€€€€€€‚˙( i*x xt -- j*x )śăď7 >€ţ€Œ˜RQ‚H€€€€€‚˙Remove xt from the stack and perform the semantics identified by it. Other stack effects are due to the word EXECUTEd.~-9mQ r€Z€^Œ˜RQł~‚9€ƒ€ƒ€ăY­Jż€‰€€ă-ŹJż€‰€‚˙See:6.1.0070 ', 6.1.2510 ['].+ď˜( €€R‚9€‚˙5mÍ1ĺ˙˙˙˙˙˙˙˙PÍů­EXIT,˜ů% €€˜˜€‚˙EXITKÍD/ .€8€‘€‚H€€€ƒƒ‚˙6.1.1380 EXIT COREśtůúB T€č€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( -- ) ( R: nest-sys -- )ýźD÷A P€y€Œ˜RQ‚9€€€€€€€‚˙Return control to the calling definition specified by nest-sys. Before executing EXIT within a do-loop, a program shall discard the loop-control parameters by executing UNLOOP.‹:ú‚Q r€t€^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所€€ăáƖ‘€‰€‚˙See:3.2.3.3 Return stack, 6.1.2380 UNLOOP.+÷­( €€R‚9€‚˙5‚â1ś˙˙˙˙˙˙˙˙Qâ“FILL,­% €€˜˜€‚˙FILLKâY/ .€8€‘€‚H€€€ƒƒ‚˙6.1.1540 FILL COREY˛< H€:€Œ˜RQ‚H€€€€€€€‚˙( c-addr u char -- )ˇtYiC V€č€Œ˜RQ‚H€€€€€€€€€‚˙If u is greater than zero, store char in each of u consecutive characters of memory beginning at c-addr.*˛“' €€ ˜R‚H€‚˙5iČ1î˙˙˙˙˙˙˙˙RČôą FIND,“ô% €€˜˜€‚˙FINDKČ?/ .€8€‘€‚H€€€ƒƒ‚˙6.1.1550 FIND COREw5ôśB T€j€Œ˜RQ‚H€€€€€€€€€‚˙( c-addr -- c-addr 0 | xt 1 | xt -1 ) ֏?Œ G \€€Œ˜RQ‚H€€€€€€€€€‚˙Find the definition named in the counted string at c-addr. If the definition is not found, return c-addr and zero. If the definition is found, return its execution token xt. If the definition is immediate, also return one (1), otherwise also return minus-one (-1). For a given string, the values returned by FIND while compiling may differ from those returned while not compiling.ů„ś… u ¸€ €^Œ˜RQł~‚9€ƒ€ƒ€ăŤ4䉀€ăY­Jż€‰€€ă-ŹJż€‰€€ă7ěĆe€‰€€€‚˙See:3.4.2 Finding definition names, A.6.1.0070 ', A.6.1.2510 ['], A.6.1.2033 POSTPONE, D.6.7 Immediacy.,Œ ą ) "€€ ˜R‚9€‚˙7… č 1J˙˙˙˙˙˙˙˙Sč  /FM/MOD. ą  % €€˜˜€‚˙FM/MODl1č ‚ ; F€b€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.1561 FM/MOD Ťf-m-slash-modťCOREo! ń N l€B€Œ˜RQ‚H€€€€€€€€€€€€€‚˙( d1 n1 -- n2 n3 )^‚ O] ˆ€€Œ˜RQ‚H€€€€€€€€€€€€€€€€€‚˙Divide d1 by n1, giving the floored quotient n3 and the remainder n2. Input and output stack arguments are signed. An ambiguous condition exists if n1 is zero or if the quotient lies outside the range of a single-cell signed integer. ´Tń ` €¨€^Œ˜RQł~‚9€ƒ€€ƒ€ă1Ë&㉀€ăíďW„€‰€€ăîqٔ€‰€‚˙See:3.2.2.1 Integer division, 6.1.2214 SM/REM, 6.1.2370 UM/MOD.,O/) "€€ ˜R‚9€‚˙5d1Ľ˙˙˙˙˙˙˙˙TdAHERE,/% €€˜˜€‚˙HEREKdŰ/ .€8€‘€‚H€€€ƒƒ‚˙6.1.1650 HERE CORE@'@0 0€ €Œ˜RQ‚HŰ'@/€€€‚˙( -- addr )P#Űw@- *€F€Œ˜RQ‚H€€‚˙addr is the data-space pointer.l*'@ă@B T€T€^Œ˜RQł~‚9€ƒ€€ƒ€ăćűÝ㉀‚˙See:3.3.3.2 Contiguous regions.,w@A) "€€ ˜R‚9€‚˙5ă@DA1Ţ˙˙˙˙˙˙˙˙UDApACHOLD,ApA% €€˜˜€‚˙HOLDKDAťA/ .€8€‘€‚H€€€ƒƒ‚˙6.1.1670 HOLD CORE@pAűA0 0€ €Œ˜RQ‚H€€€‚˙( char -- )řŽťAóBJ b€]€Œ˜RQ‚H€€€€€ă2ŹJż€‰ăX­Jż‰€‚˙Add char to the beginning of the pictured numeric output string. An ambiguous condition exists if HOLD executes outside of a <# #> delimited number conversion.*űAC' €€ ˜R‚H€‚˙2óBOC1C˙˙˙˙˙˙˙˙VOCxCŠEI)CxC% €€˜˜€‚˙IHOCŔC/ .€2€‘€‚H€€€ƒƒ‚˙6.1.1680 I COREމxCžDU x€€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( -- n|u ) ( R: loop-sys -- loop-sys )ÁŠŔC_E7 <€€Œ˜RQ‚9€€€€‚˙n|u is a copy of the current (innermost) loop index. An ambiguous condition exists if the loop control parameters are unavailable.+žDŠE( €€R‚9€‚˙3_E˝E11˙˙˙˙˙˙˙˙W˝EçEçIIF*ŠEçE% € €˜˜€‚˙IFI˝E0F/ .€4€‘€‚H€€€ƒƒ‚˙6.1.1700 IF CORE­kçEÝFB T€Ö€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: -- orig )=÷0FHF Z€ď€˜RS‚9€€€€€€€€€‚˙Put the location of a new unresolved forward reference orig onto the control flow stack. Append the run-time semantics given below to the current definition. The semantics are incomplete until orig is resolved, e.g., by THEN or ELSE.RÝFlH9 B€2€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙Run-time:( x -- )˘jHI8 @€Ô€˜RS‚9€€€€€‚˙If all bits of x are zero, continue execution at the location specified by the resolution of orig.ŽQlHźI] Š€˘€^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所€ă. d€‰€€ă#›Óˆ€‰€‚˙See:3.2.3.2 Control flow stack, 6.1.1310 ELSE, 6.1.2270 THEN.+IçI( €€R‚9€‚˙: źI!J1č˙˙˙˙˙˙˙˙X!JRJ LIMMEDIATE1 çIRJ% €€˜˜€‚˙IMMEDIATEP!!J˘J/ .€B€‘€‚H€€€ƒƒ‚˙6.1.1710 IMMEDIATE CORE3 RJŐJ* $€€Œ˜RQ‚H€‚˙( -- )´‰˘J‰K+ $€€˜RS‚H€‚˙Make the most recent definition an immediate word. An ambiguous condition exists if the most recent definition does not have a name.UŐJŢK9 B€8€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙See:D.6.7 Immediacy.+‰K L( €€R‚9€‚˙7ŢK@L1ő˙˙˙˙˙˙˙˙Y@LnL2NINVERT. LnL% €€˜˜€‚˙INVERTM@LťL/ .€<€‘€‚H€€€ƒƒ‚˙6.1.1720 INVERT COREQnL M< H€*€Œ˜RQ‚H€€€€€€€‚˙( x1 -- x2 )y>ťL…M; F€|€˜RS‚H€€€€€€€‚˙Invert all bits of x1, giving its logical inverse x2.‚1 MNQ r€b€^Œ˜RQł~‚9€ƒ€ƒ€ă”@T€‰€€ăŘŤJż€‰€‚˙See:6.1.1910 NEGATE, 6.1.0270 0=.+…M2N( €€R‚9€‚˙2NdN1*˙˙˙˙˙˙˙˙ZdNNJ)2NN% €€˜˜€‚˙JHdNŐN/ .€2€‘€‚H€€€ƒƒ‚˙6.1.1730 J COREĽN €m ¨€K€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€€€€€€€€€€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( -- n|u ) ( R: loop-sys1 loop-sys2 -- loop-sys1 loop-sys2 )ŐN €2Nć§ŐNň€? L€O€˜RS‚9€€€€€€€‚˙n|u is a copy of the next-outer loop index. An ambiguous condition exists if the loop control parameters of the next-outer loop, loop-sys1, are unavailable.+ €( €€R‚9€‚˙4ň€Q16˙˙˙˙˙˙˙˙[Q|…KEY+|% € €˜˜€‚˙KEYJQƁ/ .€6€‘€‚H€€€ƒƒ‚˙6.1.1750 KEY CORE@|‚0 0€ €Œ˜RQ‚H€€€‚˙( -- char )(őƁ.ƒ3 4€ë€Œ˜RQ‚H€€€‚˙Receive one character char, a member of the implementation-defined character set. Keyboard events that do not correspond to such characters are discarded until a valid character is received, and those events are subsequently unavailable.Ž]‚źƒ1 2€ş€Œ˜RQ‚H€€€‚˙All standard characters can be received. Characters received by KEY are not displayed.Ó.ƒ΄? L€§€Œ˜RQ‚H€€€€ăȍ㉀‚˙Any standard character returned by KEY has the numeric value specified in 3.1.2.1 Graphic characters. Programs that require the ability to receive control characters have an environmental dependency.ˆ7źƒV…Q r€n€^Œ˜RQł~‚9€ƒ€ƒ€ăóLq€€‰€€ăôLq€€‰€‚˙See:10.6.2.1307 EKEY, 10.6.1.1755 KEY?.+΄…( €€R‚9€‚˙6V…ˇ…1<˙˙˙˙˙˙˙˙\ˇ…ä…ďˆLEAVE-…ä…% €€˜˜€‚˙LEAVELˇ…0†/ .€:€‘€‚H€€€ƒƒ‚˙6.1.1760 LEAVE COREśtä…ć†B T€č€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( -- ) ( R: loop-sys -- )5â0†ˆS t€Ĺ€Œ˜RQ‚9€ăvß ü€‰ăN=şB‰€ăvß ü€‰ăK=şB‰€‚˙Discard the current loop control parameters. An ambiguous condition exists if they are unavailable. Continue execution immediately following the innermost syntactically enclosing DO ... LOOP or DO ... +LOOP.ŠLć†Ĉ] Š€˜€^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所€ăK=şB€‰€€ăN=şB€‰€‚˙See:3.2.3.3 Return stack, 6.1.0140 +LOOP, 6.1.1800 LOOP.+ˆďˆ( €€R‚9€‚˙8Ĉ'‰1b˙˙˙˙˙˙˙˙]'‰V‰‡‹LITERAL/ ďˆV‰% €€˜˜€‚˙LITERALN'‰¤‰/ .€>€‘€‚H€€€ƒƒ‚˙6.1.1780 LITERAL CORE§eV‰KŠB T€Ę€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( x -- )sG¤‰žŠ, (€Ž€Œ˜RQ‚9€‚˙Append the run-time semantics given below to the current definition.RKŠ‹9 B€2€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙Run-time:( -- x )LžŠ\‹2 4€4€Œ˜RQ‚9€€€‚˙Place x on the stack.+‹‡‹( €€R‚9€‚˙5\‹ź‹1C˙˙˙˙˙˙˙˙^ź‹č‹˙ŔLOOP,‡‹č‹% €€˜˜€‚˙LOOPKź‹3Œ/ .€8€‘€‚H€€€ƒƒ‚˙6.1.1800 LOOP COREŻmč‹âŒB T€Ú€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: do-sys -- )a3ŒCŽN j€'€Œ˜RQ‚9€ăL=şB€‰€€€ăN=şB€‰€‚˙Append the run-time semantics given below to the current definition. Resolve the destination of all unresolved occurrences of LEAVE between the location given by do-sys and the next location for a transfer of control, to execute the words following the LOOP.‚=âŒŎE Z€z€^Œ˜RQł~‚9€ƒ€ƒ€€€€€€‚˙Run-time:( -- ) ( R: loop-sys1 -- | loop-sys2 )b2CŽ3Ŕ0 .€e€Œ˜RQ‚9€‚˙An ambiguous condition exists if the loop control parameters are unavailable. Add one to the loop index. If the loop index is then equal to the loop limit, discard the loop parameters and continue execution immediately following the loop. Otherwise continue exŎ3Ŕ‡‹ecution at the beginning of the loop.ĄAŎÔŔ` €‚€^Œ˜RQł~‚9€ƒ€ƒ€ăvß ü€‰€€ăşp(€‰€€ăL=şB€‰€‚˙See:6.1.1240 DO, 6.1.1680 I, 6.1.1760 LEAVE.+3Ŕ˙Ŕ( €€R‚9€‚˙7ÔŔ6Á1ł˙˙˙˙˙˙˙˙_6ÁdÁćĂLSHIFT. ˙ŔdÁ% €€˜˜€‚˙LSHIFTf+6ÁĘÁ; F€V€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.1805 LSHIFT Ťl-shiftťCORE[dÁ%ÂB T€2€Œ˜RQ‚H€€€€€€€€€‚˙( x1 u -- x2 )8íĘÁ]ĂK d€Ű€Œ˜RQ‚H€€€€€€€€€€€‚˙Perform a logical left shift of u bit-places on x1, giving x2. Put zeroes into the least significant bits vacated by the shift. An ambiguous condition exists if u is greater than or equal to the number of bits in a cell.^%ÂťĂ? N€>€^Œ˜RQł~‚9€ƒ€ƒ€ăłCMw‰€‚˙See:6.1.2162 RSHIFT+]ĂćĂ( €€R‚9€‚˙3ťĂÄ1†˙˙˙˙˙˙˙˙`ÄCĘĹM**ćĂCÄ% € €˜˜€‚˙M*a&ĤÄ; F€L€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.1810 M* Ťm-starťCORE[CÄ˙ÄB T€2€Œ˜RQ‚H€€€€€€€€€‚˙( n1 n2 -- d )p1¤ÄoĹ? N€b€Œ˜RQ‚H€€€€€€€€‚˙d is the signed product of n1 times n2.)˙ĘĹ& €€R‚H€‚˙4oĹĚĹ1q˙˙˙˙˙˙˙˙aĚĹ÷Ĺ7ÇMAX+˜Ĺ÷Ĺ% € €˜˜€‚˙MAXJĚĹAĆ/ .€6€‘€‚H€€€ƒƒ‚˙6.1.1870 MAX CORE`÷ĹĄĆE Z€6€Œ˜RQ‚H€€€€€€€€€€‚˙( n1 n2 -- n3 )l*AĆ ÇB T€T€Œ˜RQ‚H€€€€€€€€€‚˙n3 is the greater of n1 and n2.*ĄĆ7Ç' €€ ŒR‚H€‚˙4 ÇkÇ1p˙˙˙˙˙˙˙˙bkÇ–ÇŐČMIN+7Ç–Ç% € €˜˜€‚˙MINJkÇŕÇ/ .€6€‘€‚H€€€ƒƒ‚˙6.1.1880 MIN CORE`–Ç@ČE Z€6€Œ˜RQ‚H€€€€€€€€€€‚˙( n1 n2 -- n3 )k)ŕÇŤČB T€R€Œ˜RQ‚H€€€€€€€€€‚˙n3 is the lesser of n1 and n2.*@ČŐČ' €€ ŒR‚H€‚˙4ŤČ É1˙˙˙˙˙˙˙˙c É4ÉĚMOD+ŐČ4É% € €˜˜€‚˙MODJ É~É/ .€6€‘€‚H€€€ƒƒ‚˙6.1.1890 MOD CORE`4ÉŢÉE Z€6€Œ˜RQ‚H€€€€€€€€€€‚˙( n1 n2 -- n3 )Ş:~ɈËp Ž€u€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€‚˙Divide n1 by n2, giving the single-cell remainder n3. An ambiguous condition exists if n2 is zero. If n1 and n2 differ in sign, the implementation-defined result returned will be the same as that returned by either the phrase >R S>D R> FM/MOD DROP or the phrase >R S>D R> SM/REM DROP.f'ŢÉîË? N€N€^Œ˜RQł~‚9€ƒ€ƒ€ă1Ë&㉀‚˙See:3.2.2.1 Integer division.,ˆËĚ) "€€ ŒR‚9€‚˙5îËOĚ12˙˙˙˙˙˙˙˙dOĚ{Ě|ĎMOVE,Ě{Ě% €€˜˜€‚˙MOVEKOĚĆĚ/ .€8€‘€‚H€€€ƒƒ‚˙6.1.1900 MOVE COREa{Ě'ÍB T€>€Œ˜RQ‚H€€€€€€€€€‚˙( addr1 addr2 u -- )Ž8ĆĚŐÎv ş€q€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€€€‚˙If u is greater than zero, copy the contents of u consecutive address units at addr1 to the u consecutive address units at addr2. After MOVE completes, the u consecutive address units at addr2 contain exactly what the u consecutive address units at addr1 contained before the move.{6'ÍPĎE Z€l€^Œ˜RQł~‚9€ƒ€ƒ€€€€€€‚˙See:17.6.1.0910 CMOVE, 17.6.1.0920 CMOVE>.,ŐÎ|Ď) "€€ ŒR‚9€‚˙7PĎłĎ1ú˙˙˙˙˙˙˙˙ełĎáĎŹNEGATE. |ĎáĎ% €€˜˜€‚˙NEGATEMłĎ:/ .€<€‘áĎ:|Ď€‚H€€€ƒƒ‚˙6.1.1910 NEGATE COREQáĎ‹< H€*€Œ˜RQ‚H€€€€€€€‚˙( n1 -- n2 )s7:ţ< H€n€Œ˜RQ‚H€€€€€€€‚˙Negate n1, giving its arithmetic inverse n2. ‚1‹€Q r€b€^Œ˜RQł~‚9€ƒ€ƒ€ăşp(€‰€€ăŘŤJż€‰€‚˙See:6.1.1720 INVERT, 6.1.0270 0=.,ţŹ) "€€ ŒR‚9€‚˙3€ß1˙˙˙˙˙˙˙˙fß YOR*Ź % € €˜˜€‚˙ORIßR/ .€4€‘€‚H€€€ƒƒ‚˙6.1.1980 OR CORE` ˛E Z€6€Œ˜RQ‚H€€€€€€€€€€‚˙( x1 x2 -- x3 )};R/B T€v€Œ˜RQ‚H€€€€€€€€€‚˙x3 is the bit-by-bit inclusive-or of x1 with x2.*˛Y' €€ ŒR‚H€‚˙5/Ž1ƒ˙˙˙˙˙˙˙˙gŽş OVER,Yş% €€˜˜€‚˙OVERKŽ/ .€8€‘€‚H€€€ƒƒ‚˙6.1.1990 OVER CORE~'şƒW ~€N€Œ˜RQ‚H€€€€€€€€€€€€€€€€‚˙( x1 x2 -- x1 x2 x1 )`-ă3 6€Z€Œ˜RQ‚H€€€€‚˙Place a copy of x1 on top of the stack.)ƒ & €€R‚H€‚˙9ăE1ä˙˙˙˙˙˙˙˙hEu(POSTPONE0 u% €€˜˜€‚˙POSTPONEO EÄ/ .€@€‘€‚H€€€ƒƒ‚˙6.1.2033 POSTPONE COREźtu€H `€č€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( Ťnameť -- )ÓÄšG \€§€Œ˜RQ‚9€€€€€€€€€‚˙Skip leading space delimiters. Parse name delimited by a space. Find name. Append the compilation semantics of name to the current definition. An ambiguous condition exists if name is not found.c€ýE Z€<€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所€‚˙See:3.4.1 Parsing.+š(( €€R‚9€‚˙5ý]1˝˙˙˙˙˙˙˙˙i]‰ QUIT,(‰% €€˜˜€‚˙QUITK]Ô/ .€8€‘€‚H€€€ƒƒ‚˙6.1.2050 QUIT COREK‰ 0 0€6€Œ˜RQ‚H€€€‚˙( -- ) ( R: i*x -- )úÇÔ 3 4€€Œ˜RQ‚H€€€‚˙Empty the return stack, store zero in SOURCE-ID if it is present, make the user input device the input source, and enter interpretation state. Do not display a message. Repeat the following:—d ° 3 6€Č€Œ°Ÿ‚H€€€€‚˙–  Accept a line from the input source into the input buffer, set >IN to zero, and interpret.ʜ z . *€9€Œ°Ÿ‚H€€‚˙–  Display the implementation-defined system prompt if in interpretation state, all processing has been completed, and no ambiguous condition exists. p.° ę B T€\€^Œ˜RQł~‚9€ƒ€€ƒ€ă€á牀‚˙See:3.4 The Forth text interpreter.+z  ( €€R‚9€‚˙3ę H 1ë˙˙˙˙˙˙˙˙jH r ,R>* r % € €˜˜€‚˙R>a&H Ó ; F€L€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2060 R> Ťr-fromťCOREťsr Ž H `€ć€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( -- x ) ( R: x -- )f4Ó ô 2 4€h€Œ˜RQ‚9€€€‚˙Move x from the return stack to the data stack. Ž Œ 怀^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所€ăŽCMw€‰€€ăŻCMw€‰€€ăŰ-’Ă€‰€€ăTŹJż€‰€€ăUŹJż€‰€‚˙See:3.2.3.3 Return stack, 6.1.0580 >R, 6.1.2070 R@, 6.2.0340 2>R, 6.2.0410 2R>, 6.2.0415 2R@.+ô ,( €€R‚9€‚˙3_1]˙˙˙˙˙˙˙˙k_‰oBR@*,‰% € €˜˜€‚˙R@b'_ @; F€N€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2070 R@ Ťr-fetchťCORE‰ @,Ĺw‰Ń@N l€î€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( -- x ) ( R: x -- x )f4 @7A2 4€h€Œ˜RQ‚9€€€‚˙Copy x from the return stack to the data stack. Ń@DBŒ 怀^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所€ăŽCMw€‰€€ăŽCMw€‰€€ăŰ-’Ă€‰€€ăTŹJż€‰€€ăUŹJż€‰€‚˙See:3.2.3.3 Return stack, 6.1.0580 >R, 6.1.2060 R>, 6.2.0340 2>R, 6.2.0410 2R>, 6.2.0415 2R@.+7AoB( €€R‚9€‚˙8DB§B1ą˙˙˙˙˙˙˙˙l§BÖBVERECURSE/ oBÖB% €€˜˜€‚˙RECURSEN§B$C/ .€>€‘€‚H€€€ƒƒ‚˙6.1.2120 RECURSE COREaÖBÁC< H€Â€^Œ˜RQł~‚9€ƒ€ƒ‚ƒ€€ƒ‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( -- )äŞ$CĽD: B€U€Œ˜RQ‚9€€€€€‚˙Append the execution semantics of the current definition to the current definition. An ambiguous condition exists if RECURSE appears in a definition after DOES>.†5ÁC+EQ r€j€^Œ˜RQł~‚9€ƒƒ€ăwß ü€‰€€ă°CMw€‰€€‚˙See:6.1.1250 DOES>, 6.1.2120 RECURSE.+ĽDVE( €€R‚9€‚˙7+EE1Ó˙˙˙˙˙˙˙˙mEťE]IREPEAT. VEťE% €€˜˜€‚˙REPEATMEF/ .€<€‘€‚H€€€ƒƒ‚˙6.1.2140 REPEAT COREşrťEÂFH `€ä€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: orig dest -- )ÖFÓG; D€­€Œ˜RQ‚9€€€€€‚˙Append the run-time semantics given below to the current definition, resolving the backward reference dest. Resolve the forward reference orig using the location following the appended run-time semantics.HÂFH3 6€*€^Œ˜RQł~‚9€ƒ€ƒ‚˙Run-time:( -- )h6ÓGƒH2 4€l€Œ˜RQ‚9€€€‚˙Continue execution at the location given by dest.„3HIQ r€f€^Œ˜RQł~‚9€ƒ€ƒ€ă˙‡ë€‰€€ăTŁ€‰€‚˙See:6.1.0760 BEGIN, 6.1.2430 WHILE.+ƒH2I( €€R‚9€‚˙+I]I( €€R‚9€‚˙42I‘I1Ŕ˙˙˙˙˙˙˙˙n‘IźIKKROT+]IźI% € €˜˜€‚˙ROT`%‘IJ; F€J€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2160 ROT ŤroteťCORE-źIŠJ` €Z€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙( x1 x2 x3 -- x2 x3 x1 )P&JůJ* $€L€Œ˜RQ‚H€‚˙Rotate the top three stack entries.)ŠJ"K& €€R‚H€‚˙)ůJKK& €€R‚H€‚˙7"K‚K1’˙˙˙˙˙˙˙˙o‚K°KNRSHIFT. KK°K% €€˜˜€‚˙RSHIFTf+‚KL; F€V€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2162 RSHIFT Ťr-shiftťCORE[°KqLB T€2€Œ˜RQ‚H€€€€€€€€€‚˙( x1 u -- x2 )8íLŠMK d€Ű€Œ˜RQ‚H€€€€€€€€€€€‚˙Perform a logical right shift of u bit-places on x1, giving x2. Put zeroes into the most significant bits vacated by the shift. An ambiguous condition exists if u is greater than or equal to the number of bits in a cell.h&qLNB T€L€R‚H€‚€ƒ€ƒ€ăO=şB€‰€€‚‚˙See:6.1.1805 LSHIFT 3ŠMDN1˙˙˙˙˙˙˙˙pDNnNg‚S"*NnN% € €˜˜€‚˙S"b'DNĐN; F€N€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2165 S" Ťs-quoteťCOREşrnNŠOH `€ä€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( Ťcccť -- )ŻvĐNE€9 B€ě€Œ˜RQ‚9€€€€€‚˙Parse ccc delimited by " (double-quote). Append the runŠOE€N-time semantics given below to the current definition.a"ŠOŚ€? N€D€^Œ˜RQł~‚9€ƒ€ƒ€€€€‚˙Run-time:( -- c-addr u )ÃE€i@ N€€Œ˜RQ‚9€€€€€€€‚˙Return c-addr and u describing a string consisting of the characters ccc. A program shall not alter the returned string.¨EŚ€‚c –€Š€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所€ă8˛Ý󀉀€ăio€€‰€€‚˙See:3.4.1 Parsing, 6.2.0855 C", 11.6.1.2165 S".+i<‚( €€R‚9€‚˙+‚g‚( €€R‚9€‚˙4<‚›‚1‘˙˙˙˙˙˙˙˙q›‚Ƃ&„S>D+g‚Ƃ% € €˜˜€‚˙S>Db'›‚(ƒ; F€N€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2170 S>D Ťs-to-dťCOREGƂoƒ6 <€"€Œ˜RQ‚H€€€€€‚˙( n -- d )ŽX(ƒýƒ6 <€°€Œ˜RQ‚H€€€€€‚˙Convert the number n to the double-cell number d with the same numerical value. )oƒ&„& €€R‚H€‚˙5ýƒ[„1ö˙˙˙˙˙˙˙˙r[„‡„L†SIGN,&„‡„% €€˜˜€‚˙SIGNK[„҄/ .€8€‘€‚H€€€ƒƒ‚˙6.1.2210 SIGN CORE= ‡„…0 0€€Œ˜RQ‚H€€€‚˙( n -- )É҄#†K d€“€Œ˜RQ‚H€€€€€ă2ŹJż€‰ăX­Jż‰€‚˙If n is negative, add a minus sign to the beginning of the pictured numeric output string. An ambiguous condition exists if SIGN executes outside of a <# #> delimited number conversion.)…L†& €€R‚H€‚˙7#†ƒ†1O˙˙˙˙˙˙˙˙sƒ†ą†ωSM/REM. L†ą†% €€˜˜€‚˙SM/REMl1ƒ†‡; F€b€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2214 SM/REM Ťs-m-slash-remťCOREo!ą†Œ‡N l€B€Œ˜RQ‚H€€€€€€€€€€€€€‚˙( d1 n1 -- n2 n3 )\‡čˆZ ‚€€Œ˜RQ‚H€€€€€€€€€€€€€€€€‚˙Divide d1 by n1, giving the symmetric quotient n3 and the remainder n2. Input and output stack arguments are signed. An ambiguous condition exists if n1 is zero or if the quotient lies outside the range of a single-cell signed integer. źVŒ‡¤‰f œ€Ź€^Œ˜RQł~‚9€ƒ€€ƒ€ă1Ë&㉀€€ăůái€‰€€€ăîqٔ€‰€‚˙See:3.2.2.1 Integer division, 6.1.1561 FM/MOD, 6.1.2370 UM/MOD.+čˆω( €€R‚9€‚˙7¤‰Š1}˙˙˙˙˙˙˙˙tŠ4Š€‹SOURCE. ω4Š% €€˜˜€‚˙SOURCEMŠŠ/ .€<€‘€‚H€€€ƒƒ‚˙6.1.2216 SOURCE COREL4Š͊6 <€,€Œ˜RQ‚H€€€€€‚˙( -- c-addr u )ŠWŠW‹3 6€Ž€Œ˜RQ‚H€€€€‚˙c-addr is the address of, and u is the number of characters in, the input buffer.)͊€‹& €€R‚H€‚˙6W‹ś‹1˙˙˙˙˙˙˙˙uś‹ă‹ʌSPACE-€‹ă‹% €€˜˜€‚˙SPACELś‹/Œ/ .€:€‘€‚H€€€ƒƒ‚˙6.1.2220 SPACE CORE3 ă‹bŒ* $€€Œ˜RQ‚H€‚˙( -- )?/ŒĄŒ* $€*€Œ˜RQ‚H€‚˙Display one space.)bŒʌ& €€R‚H€‚˙7ĄŒ1M˙˙˙˙˙˙˙˙v/KŽSPACES. ʌ/% €€˜˜€‚˙SPACESM|/ .€<€‘€‚H€€€ƒƒ‚˙6.1.2230 SPACES CORE= /š0 0€€Œ˜RQ‚H€€€‚˙( n -- )i3|"Ž6 <€f€Œ˜RQ‚H€€€€€‚˙If n is greater than zero, display n spaces.)šKŽ& €€R‚H€‚˙6"ŽŽ1Ę˙˙˙˙˙˙˙˙wŽŽŽSĂSTATE-KŽŽŽ% €€˜˜€‚˙STATELŽúŽ/ .€:€‘€‚H€€€ƒƒ‚˙6.1.2250 STATE COREBŽŽ<0 0€$€Œ˜RQ‚H€€€‚˙( -- a-addr ) ‰úŽQÁ€ ΀€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚˙a-addr is the address of a cell containing the compilation-state f<QÁKŽlag. STATE is true when in compilation state, false otherwise. The true value in STATE is non-zero, but is otherwise implementation-defined. Only the following standard words alter the value in STATE: : (colon), ; (semicolon), ABORT, QUIT, :NONAME, [ (left-bracket), and ] (right-bracket).×<(ĂČ ^€^Œ˜RQł~‚9€ƒ€€ƒ€€‚€ƒ€ƒ€ă€á牀€ăŹJż€‰€€€ăŹJż€‰€€ăB\W €€ăňŠn€‰€€ă,ŹJż€‰€€ă.ŹJż€‰€€ăÔ@T€‰€€€€‚˙Note:A program shall not directly alter the contents of STATE.See:3.4 The Forth text interpreter, 6.1.0450 :, 6.1.0460 ;, 6.1.0670 ABORT, 6.1.2050 QUIT, 6.1.2500 [, 6.1.2540 ], 6.2.0455 :NONAME, 15.6.2.2250 STATE.+QÁSĂ( €€R‚9€‚˙5(ĂˆĂ1b˙˙˙˙˙˙˙˙xˆĂ´ĂĺÄSWAP,SĂ´Ă% €€˜˜€‚˙SWAPKˆĂ˙Ă/ .€8€‘€‚H€€€ƒƒ‚˙6.1.2260 SWAP COREo!´ĂnÄN l€B€Œ˜RQ‚H€€€€€€€€€€€€€‚˙( x1 x2 -- x2 x1 )N$˙ĂźÄ* $€H€Œ˜RQ‚H€‚˙Exchange the top two stack items.)nÄĺÄ& €€R‚H€‚˙5źÄĹ15˙˙˙˙˙˙˙˙yĹFĹJČTHEN,ĺÄFĹ% €€˜˜€‚˙THENKĹ‘Ĺ/ .€8€‘€‚H€€€ƒƒ‚˙6.1.2270 THEN CORE­kFĹ>ĆB T€Ö€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: orig -- )ŘĽ‘ĹÇ3 4€K€˜RS‚9€€€‚˙Append the run-time semantics given below to the current definition. Resolve the forward reference orig using the location of the appended run-time semantics.H>Ć^Ç3 6€*€^Œ˜RQł~‚9€ƒ€ƒ‚˙Run-time:( -- )AÇŸÇ+ &€,€˜RS‚9€‚˙Continue execution.€/^ÇČQ r€^€^Œ˜RQł~‚9€ƒ€ƒ€ă. d€‰€€ăşp(€‰€‚˙See:6.1.1310 ELSE, 6.1.1700 IF.+ŸÇJČ( €€R‚9€‚˙5ČČ1ź˙˙˙˙˙˙˙˙zČŤČ6ĚTYPE,JČŤČ% €€˜˜€‚˙TYPEKČöČ/ .€8€‘€‚H€€€ƒƒ‚˙6.1.2310 TYPE COREKŤČAÉ5 :€,€˜RS‚H€€€€€‚˙( c-addr u -- )–[öČ×É; F€ś€˜RS‚H€€€€€€€‚˙If u is greater than zero, display the character string specified by c-addr and u.Ń—AɨË: B€/€˜RS‚H€€ăȍ㉀‚˙When passed a character in a character string whose character-defining bits have a value between hex 20 and 7E inclusive, the corresponding standard character, specified by 3.1.2.1 graphic characters, is displayed. Because different output devices can respond differently to control characters, programs that use control characters to perform specific functions have an environmental dependency.c×É ĚE Z€<€^Œ˜RQł~‚9€ƒ€ƒ€€ă/ d€‰€‚˙See:6.1.1320 EMIT.+¨Ë6Ě( €€R‚9€‚˙3 ĚiĚ1I˙˙˙˙˙˙˙˙{iĚ“ĚŤÍU.*6Ě“Ě% € €˜˜€‚˙U.`%iĚóĚ; F€J€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2320 U. Ťu-dotťCORE< “Ě/Í/ .€€˜RS‚H€€€‚˙( u -- )S$óĚ‚Í/ .€H€˜RS‚H€€€‚˙Display u in free field format.)/ÍŤÍ& €€R‚H€‚˙3‚ÍŢÍ1î˙˙˙˙˙˙˙˙|ŢÍÎĹĎU<*ŤÍÎ% € €˜˜€‚˙U<f+ŢÍnÎ; F€V€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2340 U< Ťu-less-thanťCORE]ÎËÎA R€8€˜RS‚H€€€€€€€€€‚˙( u1 u2 -- flag )w9nÎBĎ> L€r€˜RS‚H€€€€€€€€‚˙flag is true if and only if u1 is less than u2.XËΚĎ? N€2€^Œ˜RQł~‚9€ƒƒ€ăŹJż€‰€‚˙See:6.1.0480 <.+BĎĹĎ( €€R‚9€‚˙4šĎ 1Ď˙˙˙˙˙˙˙˙} 7ÔUM*ĹĎ ĹĎ+ĹĎ7% € €˜˜€‚˙UM*d) ›; F€R€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2360 UM* Ťu-m-starťCORE[7öA R€4€˜RS‚H€€€€€€€€€‚˙( u1 u2 -- ud )ľs›ŤB T€ć€˜RS‚H€€€€€€€€€‚˙Multiply u1 by u2, giving the unsigned double-cell product ud. All values and arithmetic are unsigned.)öÔ& €€R‚H€‚˙7Ť 10˙˙˙˙˙˙˙˙~ 98UM/MOD. Ô9% €€˜˜€‚˙UM/MODl1 Ľ; F€b€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2370 UM/MOD Ťu-m-slash-modťCOREk 9K f€@€Œ˜RQ‚H€€€€€€€€€€€€‚˙( ud u1 -- u2 u3 )IóĽYV z€ç€˜RS‚H€€€€€€€€€€€€€€€‚˙Divide ud by u1, giving the quotient u3 and the remainder u2. All values and arithmetic are unsigned. An ambiguous condition exists if u1 is zero or if the quotient lies outside the range of a single-cell unsigned integer.´T ` €¨€^Œ˜RQł~‚9€ƒ€€ƒ€ă1Ë&㉀€ăůái€‰€€ăíďW„€‰€‚˙See:3.2.2.1 Integer division, 6.1.1561 FM/MOD, 6.1.2214 SM/REM.+Y8( €€R‚9€‚˙7 o1ň˙˙˙˙˙˙˙˙o^UNLOOP. 8% €€˜˜€‚˙UNLOOPNoë/ .€>€‘€‚H€€€ƒƒ‚˙6.1.2380 UNLOOP COREśtĄB T€č€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( -- ) ( R: loop-sys -- )0ďëŃA P€ß€Œ˜RQ‚9€€€€ă˝ß”‚˙Discard the loop-control parameters for the current nesting level. An UNLOOP is required for each nesting level before the definition may be EXITed. An ambiguous condition exists if the loop-control parameters are unavailable.b#Ą3? N€F€^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所‚˙See:3.2.3.3 Return stack.+Ń^( €€R‚9€‚˙63”1:˙˙˙˙˙˙˙˙€”ÁĘ UNTIL-^Á% €€˜˜€‚˙UNTILL” / .€:€‘€‚H€€€ƒƒ‚˙6.1.2390 UNTIL CORE­kÁş B T€Ö€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: dest -- )¤q ^ 3 6€â€Œ˜RQ‚9€€€‚˙Append the run-time semantics given below to the current definition, resolving the backward reference dest.Rş ° 9 B€2€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙Run-time:( x -- )W^ ? 8 @€Ž€Œ˜RQ‚9€€€€€‚˙If all bits of x are zero, continue execution at the location specified by dest.`° Ÿ B T€<€^Œ˜RQł~‚9€ƒ€ƒ€ă˙‡ë€‰€‚˙See:6.1.0760 BEGIN.+? Ę ( €€R‚9€‚˙9Ÿ  1×˙˙˙˙˙˙˙˙ 3  @VARIABLE0 Ę 3 % €€˜˜€‚˙VARIABLEO  ‚ / .€@€‘€‚H€€€ƒƒ‚˙6.1.2410 VARIABLE CORER3 Ô 6 <€8€Œ˜RQ‚H€€€€€‚˙( Ťnameť -- )ʂ × 9 @€•€Œ˜RQ‚H€€€€€‚˙Skip leading space delimiters. Parse name delimited by a space. Create a definition for name with the execution semantics defined below. Reserve one cell of data space at an aligned address.e,Ô <9 B€X€Œ˜RQ‚H€€€€€€‚˙name is referred to as a Ťvariableť.e&× Ą? N€L€^Œ˜RQł~‚9€ƒ€€€ƒ€€‚˙name Execution:( -- a-addr )Ž~<O0 0€ü€Œ˜RQ‚9€€‚˙a-addr is the address of the reserved cell. A program is responsible for initializing the contents of the reserved cell._ĄŽB T€:€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所‚˙See:3.4.1 Parsing.+O @( €€R‚9€‚˙Ž @Ę 6ŽB@1Ó˙˙˙˙˙˙˙˙‚B@o@DWHILE- @o@% €€˜˜€‚˙WHILELB@ť@/ .€:€‘€‚H€€€ƒƒ‚˙6.1.2430 WHILE COREÇyo@‚AN l€ň€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: dest -- orig dest )oť@ńBT v€7€Œ˜RQ‚9€€€€€€€€€ăąCMw€‰€‚˙Put the location of a new unresolved forward reference orig onto the control flow stack, under the existing dest. Append the run-time semantics given below to the current definition. The semantics are incomplete until orig and dest are resolved (e.g., by REPEAT).R‚ACC9 B€2€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙Run-time:( x -- )ŁjńBćC9 B€Ô€Œ˜RQ‚9€€€€€‚˙If all bits of x are zero, continue execution at the location specified by the resolution of orig.+CCD( €€R‚9€‚˙5ćCFD1˙˙˙˙˙˙˙˙ƒFDrD]IWORD,DrD% €€˜˜€‚˙WORDKFD˝D/ .€8€‘€‚H€€€ƒƒ‚˙6.1.2450 WORD COREr0rD/EB T€`€Œ˜RQ‚H€€€€€€€€€‚˙( char Ťcccť -- c-addr ) Ó˝D;F9 @€§€Œ˜RQ‚H€€€€€‚˙Skip leading delimiters. Parse characters ccc delimited by char. An ambiguous condition exists if the length of the parsed string is greater than the implementation-defined length of a counted string.|K/EˇG1 0€—€Œ˜RQ‚H€€‚˙c-addr is the address of a transient region containing the parsed word as a counted string. If the parse area was empty or contained no characters other than the delimiter, the resulting string has a zero length. A space, not included in the length, follows the string. A program may replace characters within the string.z;F1If š€)€^Œ˜RQł~‚9€ƒ€€ƒă;˛Ý󀉀‚€ƒ€ƒ€ăćűÝ㉀€ăK5所‚˙Note:The requirement to follow the string with a space is obsolescent and is included as a concession to existing programs that use CONVERT. A program shall not depend on the existence of the space.See:3.3.3.6 Other transient regions, 3.4.1 Parsing.,ˇG]I) "€€ ˜R‚9€‚˙41I‘I1˜˙˙˙˙˙˙˙˙„‘IźI#KXOR+]IźI% € €˜˜€‚˙XOR`%‘IJ; F€J€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2490 XOR Ťx-orťCORE`źI|JE Z€6€Œ˜RQ‚H€€€€€€€€€€‚˙( x1 x2 -- x3 )};JůJB T€v€Œ˜RQ‚H€€€€€€€€€‚˙x3 is the bit-by-bit exclusive-or of x1 with x2.*|J#K' €€ ˜R‚H€‚˙2ůJUK1ż˙˙˙˙˙˙˙˙…UK~K N[)#K~K% €€˜˜€‚˙[f+UKäK; F€V€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2500 [ Ťleft-bracketťCOREâœ~KĆLF Z€9€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ‚€ƒ€ƒ‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:Perform the execution semantics given below.Execution:( -- )k9äK1M2 4€r€Œ˜RQ‚9€€€‚˙Enter interpretation state. [ is an immediate word.ŻUĆLŕMZ „€Ş€^Œ˜RQł~‚9€ƒ€ƒ€ă€á牀€㓠ă‰€€ă.ŹJż€‰€‚˙See:3.4 The Forth text interpreter, 3.4.5 Compilation, 6.1.2540 ].,1M N) "€€ ˜R‚9€‚˙4ŕM@N1ă˙˙˙˙˙˙˙˙†@NkN$ƒ[']+ NkN% € €˜˜€‚˙[']h-@NÓN; F€Z€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2510 ['] Ťbracket-tickťCOREźtkNOH `€č€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( Ťnameť -- )ԚÓNo€: B€5€Œ˜RQ‚9€€€€€‚˙Skip leading space delimiters. Parse name delimitedOo€ N by a space. Find name. Append the run-time semantics given below to the current definition.j8Oـ2 4€p€Œ˜RQ‚9€€€‚˙An ambiguous condition exists if name is not found.So€,9 B€4€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙Run-time:( -- xt )ÂـJ‚\ †€…€Œ˜RQ‚9€€€€€€€€€€€€€€€€‚˙Place name’s execution token xt on the stack. The execution token returned by the compiled phrase Ť['] X ť is the same value returned by Ť' X ť outside of compilation state.ŻX,ů‚W ~€°€^Œ˜RQł~‚9€ƒ€ƒ€ăK5所€€€€€€€€‚˙See:3.4.1 Parsing, A.6.1.0070 ', A.6.1.2033 POSTPONE, D.6.7 Immediacy.+J‚$ƒ( €€R‚9€‚˙7ů‚[ƒ1 ˙˙˙˙˙˙˙˙‡[ƒ‰ƒř†[CHAR]. $ƒ‰ƒ% €€˜˜€‚˙[CHAR]k0[ƒôƒ; F€`€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2520 [CHAR] Ťbracket-charťCOREźt‰ƒ°„H `€č€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( Ťnameť -- )ŔŒôƒp…4 6€€Œ˜RQ‚9€€€‚˙Skip leading space delimiters. Parse name delimited by a space. Append the run-time semantics given below to the current definition.U°„Ņ9 B€8€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙Run-time:( -- char )‚Jp…G†8 @€”€Œ˜RQ‚9€€€€€‚˙Place char, the value of the first character of name, on the stack.†2Ņ͆T x€d€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所€㽳Ý󀉀€‚˙See:3.4.1 Parsing, 6.1.0895 CHAR.+G†ř†( €€R‚9€‚˙2͆*‡1Ă˙˙˙˙˙˙˙˙ˆ*‡S‡ĺˆ])ř†S‡% €€˜˜€‚˙]g,*‡ş‡; F€X€‘€‚H€€€ƒ€€€€ƒ‚˙6.1.2540 ] Ťright-bracketťCORE3 S‡í‡* $€€Œ˜RQ‚H€‚˙( -- )Eş‡2ˆ* $€6€Œ˜RQ‚H€‚˙Enter compilation state.łVí‡ĺˆ] Š€Ź€^Œ˜RQł~‚9€ƒ€ƒ€ă€á牀€㓠ă‰€€€ă,ŹJż€‰€‚˙See:3.4 The Forth text interpreter, 3.4.5 Compilation, 6.1.2500 [.12ˆ‰1Ç˙˙˙˙˙˙˙˙‰˙˙˙˙‰Ź‰'ĺˆ=‰$ €€R€‚˙H ‰…‰( €@€°˜€ € ‚˙6.2 Core extension words '=‰Ź‰$ €€R€‚˙5…‰á‰15˙˙˙˙˙˙˙˙Šá‰ ŠŒ#TIB,Ź‰ Š% €€˜˜€‚˙#TIBm2á‰zŠ; F€d€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0060 #TIB Ťnumber-t-i-bťCORE EXTB ŠźŠ0 0€$€Œ˜RQ‚H€€€‚˙( -- a-addr )“fzŠO‹- *€Ě€˜RS‚H€€‚˙a-addr is the address of a cell containing the number of characters in the terminal input buffer.—aźŠć‹6 <€Â€^Œ˜RQł~‚9€ƒƒ€€‚˙Note:This word is obsolescent and is included as a concession to existing implementations.+O‹Œ( €€R‚9€‚˙3ć‹DŒ1˙˙˙˙˙˙˙˙‹DŒnŒʎ.(*ŒnŒ% € €˜˜€‚˙.(h-DŒ֌; F€Z€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0200 .( Ťdot-parenťCORE EXTŹdnŒ‚H `€Č€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Compilation:Perform the execution semantics given below.Execution:( Ťcccť -- )™\֌Ž= J€¸€˜RS‚9€€€€€€€‚˙Parse and display ccc delimited by ) (right parenthesis). .( is an immediate word.„0‚ŸŽT x€`€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所€ăŐŤJż€‰€€‚˙See:3.4.1 Parsing, 6.1.0190 .".+Žʎ( €€R‚9€‚˙3ŸŽýŽ1ď˙˙˙˙˙˙˙˙ŒýŽ'BÁ.R*ʎ'% € €˜˜€‚˙.Rd)ýŽ‹; F€R€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0210 .R Ťdot-rťCORE EXTQ'܏< H€*€Œ˜RQ‚H€€€€€€€‚˙( n1 n2 -- )1ዏÁP n€Ă€˜RS‚܏ÁʎH€€€€€€€€€€€€€‚˙Display n1 right aligned in a field n2 characters wide. If the number of characters required to display n1 is greater than n2, all digits are displayed with no leading spaces in a field as wide as necessary.)܏BÁ& €€R‚H€‚˙4ÁvÁ1~˙˙˙˙˙˙˙˙vÁĄÁîÂ0<>+BÁĄÁ% € €˜˜€‚˙0<>o4vÁÂ; F€h€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0260 0<> Ťzero-not-equalsťCORE EXTJĄÁZÂ6 <€(€Œ˜RQ‚H€€€€€‚˙( x -- flag )k9ÂĹÂ2 4€r€˜RS‚H€€€€‚˙flag is true if and only if x is not equal to zero.)ZÂîÂ& €€R‚H€‚˙3ĹÂ!Ă1y˙˙˙˙˙˙˙˙Ž!ĂKĂ“Ä0>*îÂKĂ% € €˜˜€‚˙0>k0!ĂśĂ; F€`€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0280 0> Ťzero-greaterťCORE EXTIKĂ˙Ă5 :€(€˜RS‚H€€€€€‚˙( n -- flag )k9śĂjÄ2 4€r€˜RS‚H€€€€‚˙flag is true if and only if n is greater than zero.)˙Ă“Ä& €€R‚H€‚˙4jÄÇÄ1V˙˙˙˙˙˙˙˙ÇÄňÄČ2>R+“ÄňÄ% € €˜˜€‚˙2>Rh-ÇÄZĹ; F€Z€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0340 2>R Ťtwo-to-rťCORE EXTă‚ňÄ=Ća €€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€€€€€€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( x1 x2 -- ) ( R: -- x1 x2 )Ł`ZĹŕĆC V€Ŕ€˜RS‚9€€€€€€€€€‚˙Transfer cell pair x1 x2 to the return stack. Semantically equivalent to SWAP >R >R. €=ĆěÇŒ 怀^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所€ă­CMw€‰€€ăŽCMw€‰€€ăŻCMw€‰€€ăTŹJż€‰€€ăUŹJż€‰€‚˙See:3.2.3.3 Return stack, 6.1.0580 >R, 6.1.2060 R>, 6.1.2070 R@, 6.2.0410 2R>, 6.2.0415 2R@.+ŕĆČ( €€R‚9€‚˙4ěÇKČ1]˙˙˙˙˙˙˙˙KČvȢË2R>+ČvČ% € €˜˜€‚˙2R>j/KČŕČ; F€^€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0410 2R> Ťtwo-r-fromťCORE EXTäƒvČÄÉa €€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€€€€€€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( -- x1 x2 ) ( R: x1 x2 -- )§cŕČkĘD X€Ć€˜RS‚9€€€€€€€€€‚˙Transfer cell pair x1 x2 from the return stack. Semantically equivalent to R> R> SWAP. €ÄÉwËŒ 怀^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所€ă­CMw€‰€€ăŽCMw€‰€€ăŻCMw€‰€€ăŰ-’Ă€‰€€ăUŹJż€‰€‚˙See:3.2.3.3 Return stack, 6.1.0580 >R, 6.1.2060 R>, 6.1.2070 R@, 6.2.0340 2>R, 6.2.0415 2R@.+kʢË( €€R‚9€‚˙4wËÖË1ƒ˙˙˙˙˙˙˙˙‘ÖËĚSĎ2R@+˘ËĚ% € €˜˜€‚˙2R@k0ÖËlĚ; F€`€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0415 2R@ Ťtwo-r-fetchťCORE EXTĚnÍs ´€€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€€€€€€€€€€€€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( -- x1 x2 ) ( R: x1 x2 -- x1 x2 )ŽjlĚÎD X€Ô€˜RS‚9€€€€€€€€€‚˙Copy cell pair x1 x2 from the return stack. Semantically equivalent to R> R> 2DUP >R >R SWAP. €nÍ(ĎŒ 怀^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所€ă­CMw€‰€€ăŽCMw€‰€€ăŻCMw€‰€€ăŰ-’Ă€‰€€ăTŹJż€‰€‚˙See:3.2.3.3 Return stack, 6.1.0580 >R, 6.1.2060 R>, 6.1.2070 R@, 6.2.0340 2>R, 6.2.0410 2R>.+ÎSĎ( €€R‚9€‚˙8(Ď‹Ď1~˙˙˙˙˙˙˙˙’‹ĎşĎ :NONAME/ SĎşĎ% €€˜˜€‚˙:NONAMEq6‹Ď7; F€l€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0455 şĎ7SĎ :NONAME Ťcolon-no-nameťCORE EXT`*şĎ—6 <€T€Œ˜RQ‚H€€€€€‚˙( C: -- colon-sys ) ( S: -- xt )ő˝7Œ8 >€{€˜RS‚H€€€€€‚˙Create an execution token xt, enter compilation state and start the current definition, producing colon-sys. Append the initiation semantics given below to the current definition.ꭗv= H€[€˜RS‚H€€€€€€€‚˙The execution semantics of xt will be determined by the words compiled into the body of the definition. This definition can be executed later by using xt EXECUTE.Ý ŒS= H€A€˜RS‚H€€€€ăŁËŃ所‚˙If the control-flow stack is implemented using the data stack, colon-sys shall be the topmost item on the data stack. See 3.2.3.2 Control-flow stack.ƒ;vÖH `€v€^Œ˜RQł~‚9€ƒ€€ƒ€€€€€€‚˙Initiation:( i*x -- i*x ) ( R: -- nest-sys )ˌSĄ? L€€˜RS‚9€€€€€€€‚˙Save implementation-dependent information nest-sys about the calling definition. The stack effects i*x represent arguments to xt.l'Ö E Z€N€^Œ˜RQł~‚9€ƒ€€€ƒ€€€€‚˙xt Execution:( i*x -- j*x )ьĄŢE X€€˜RS‚9€€€€€€€€€‚˙Execute the definition specified by xt. The stack effects i*x and j*x represent arguments to and results from xt, respectively.+  ( €€R‚9€‚˙3Ţ<1ý˙˙˙˙˙˙˙˙“<f2<>* f% € €˜˜€‚˙<>i.<Ď; F€\€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0500 <> Ťnot-equalsťCORE EXT^f-B T€8€Œ˜RQ‚H€€€€€€€€€‚˙( x1 x2 -- flag )ŠKϡ? N€–€Œ˜RQ‚H€€€€€€€€‚˙flag is true if and only if x1 is not bit-for-bit the same as x2.)-ŕ& €€R‚H€‚˙)ˇ & €€R‚H€‚˙)ŕ2& €€R‚H€‚˙4 f1&˙˙˙˙˙˙˙˙”f‘†?DO+2‘% € €˜˜€‚˙?DOk0fü; F€`€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0620 ?DO Ťquestion-doťCORE EXTŻm‘Ť B T€Ú€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: -- do-sys ) Ëüˇ A P€—€Œ˜RQ‚9€€€€€€€‚˙Put do-sys onto the control-flow stack. Append the run-time semantics given below to the current definition. The semantics are incomplete until resolved by a consumer of do-sys such as LOOP.˘EŤ Y ] Š€Š€^Œ˜RQł~‚9€ƒ€ƒ€€€€€€€€€€€€€€‚˙Run-time:( n1|u1 n2|u2 -- ) ( R: -- | loop-sys )pǡ É Š €Œ˜RQ‚9€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚˙If n1|u1 is equal to n2|u2, continue execution at the location given by the consumer of do-sys. Otherwise set up loop control parameters with index n2|u2 and limit n1|u1 and continue executing immediately following ?DO. Anything already on the return stack becomes unavailable until the loop control parameters are discarded. An ambiguous condition exists if n1|u1 and n2|u2 are not both of the same type.<ĄY › C€^Œ˜RQł~‚9€ƒ€ƒ€ăŁËŃ所€ăK=şB€‰€€ăvß ü€‰€€ăşp(€‰€€ăL=şB€‰€€ăN=şB€‰€€ăáƖ‘€‰€‚˙See:3.2.3.2 Control-flow stack, 6.1.0140 +LOOP, 6.1.1240 DO, 6.1.1680 I, 6.1.1760 LEAVE, 6.1.1800 LOOP, 6.1.2380 UNLOOP.+É 0( €€R‚9€‚˙+[( €€R‚9€‚˙+0†( €€R‚9€‚˙6[ź1ˆ˙˙˙˙˙˙˙˙•ź @YCAGAIN-† @% €€˜˜€‚˙AGAINź @†Q"ź]@/ .€D€‘€‚H€€€ƒƒ‚˙6.2.0700 AGAIN CORE EXT­k @ AB T€Ö€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: dest -- )¤q]@ŽA3 6€â€Œ˜RQ‚9€€€‚˙Append the run-time semantics given below to the current definition, resolving the backward reference dest.H AöA3 6€*€^Œ˜RQł~‚9€ƒ€ƒ‚˙Run-time:( -- )ԚŽAĘB: B€5€Œ˜RQ‚9€€€€€‚˙Continue execution at the location specified by dest. If no other control flow words are used, any program code after AGAIN will not be executed.döA.CE Z€>€^Œ˜RQł~‚9€ƒ€ƒ€€ă˙‡ë€‰€‚˙See:6.1.0760 BEGIN.+ĘBYC( €€R‚9€‚˙3.CŒC1Ń˙˙˙˙˙˙˙˙–ŒCśCVGC"*YCśC% € €˜˜€‚˙C"f+ŒCD; F€V€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0855 C" Ťc-quoteťCORE EXTşrśCÖDH `€ä€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( Ťcccť -- )°xD†E8 @€đ€˜RS‚9€€€€€‚˙Parse ccc delimited by " (double-quote) and append the run-time semantics given below to the current definition.WÖDÝE9 B€<€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙Run-time:( -- c-addr )ąy†EŽF8 @€ň€˜RS‚9€€€€€‚˙Return c-addr, a counted string consisting of the characters ccc. A program shall not alter the returned string.CÝE+GZ „€†€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所€ăio€€‰€€€€‚˙See:3.4.1 Parsing, 6.1.2165 S", 11.6.1.2165 S". +ŽFVG( €€R‚9€‚˙5+G‹G1Q˙˙˙˙˙˙˙˙—‹GˇG×JCASE,VGˇG% €€˜˜€‚˙CASEO ‹GH/ .€@€‘€‚H€€€ƒƒ‚˙6.2.0873 CASE CORE EXTąoˇGˇHB T€Ţ€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: -- case-sys )ÏHzI4 6€€Œ˜RQ‚9€€€‚˙Mark the start of the CASE ... OF ... ENDOF ... ENDCASE structure. Append the run-time semantics given below to the current definition.HˇHÂI3 6€*€^Œ˜RQł~‚9€ƒ€ƒ‚˙Run-time:( -- )BzIJ, (€,€Œ˜RQ‚9€‚˙Continue execution.§GÂIŤJ` €Ž€^Œ˜RQł~‚9€ƒ€ƒ€ă3 d€‰€€ă4 d€‰€€ă~Ŕ]€‰€‚˙See:6.2.1342 ENDCASE, 6.2.1343 ENDOF, 6.2.1950 OF.,J×J) "€€ ˜R‚9€‚˙9ŤJK1)˙˙˙˙˙˙˙˙˜K@K8MCOMPILE,0 ×J@K% €€˜˜€‚˙COMPILE,r7K˛K; F€n€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.0945 COMPILE, Ťcompile-commaťCORE EXTŚd@KXLB T€Č€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒƒ€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Execution:( xt -- )´€˛K M4 6€€Œ˜RQ‚9€€€‚˙Append the execution semantics of the definition represented by xt to the execution semantics of the current definition. ,XL8M) "€€ ˜R‚9€‚˙8 MpM1ľ˙˙˙˙˙˙˙˙™pMŸMäCONVERT/ 8MŸM% €€˜˜€‚˙CONVERTR#pMńM/ .€F€‘€‚H€€€ƒƒ‚˙6.2.0970 CONVERT CORE EXT{-ŸMlNN l€Z€Œ˜RQ‚H€€€€€€€€€€€€€‚˙( ud1 c-addr1 -- ud2 c-addr2 )&¸ńMž€n Ş€q€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€‚˙ud2 is the result of converting the characters within the text beginning at the first character after c-addr1 into digits, using the number in BASE, and adding each digit to ud1 after multiplying ud1 by the number in BASE. Conversion continues until a character that is not lNž€8Mconvertible is encountered. c-addr2 is the location of the first unconverted character. An ambiguous condition exists if ud2 overflows.žlN¸\ †€}€^Œ˜RQł~‚9€ƒ€€ƒ€ăÁ”@T€‰€‚€ƒ€ƒ€ă.öĚ剀‚˙Note:This word is obsolescent and is included as a concession to existing implementations. Its function is superseded by 6.1.0570 >NUMBER.See:3.2.1.2 Digit conversion.,ž€ä) "€€ ˜R‚9€‚˙8¸‚1Ó˙˙˙˙˙˙˙˙š‚K‚í…ENDCASE/ äK‚% €€˜˜€‚˙ENDCASEl1‚ˇ‚; F€b€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.1342 ENDCASE Ťend-caseťCORE EXTąoK‚hƒB T€Ţ€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: case-sys -- )úżˇ‚b„; D€€Œ˜RQ‚9€€€€€‚˙Mark the end of the CASE ... OF ... ENDOF ... ENDCASE structure. Use case-sys to resolve the entire structure. Append the run-time semantics given below to the current definition.Rhƒ´„9 B€2€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙Run-time:( x -- )j8b„…2 4€p€Œ˜RQ‚9€€€‚˙Discard the case selector x and continue execution.¤D´„…` €ˆ€^Œ˜RQł~‚9€ƒ€ƒ€ă9˛Ý󀉀€ă4 d€‰€€ă~Ŕ]€‰€‚˙See:6.2.0873 CASE, 6.2.1343 ENDOF, 6.2.1950 OF.+…í…( €€R‚9€‚˙6…#†1°˙˙˙˙˙˙˙˙›#†P†ϊENDOF-í…P†% €€˜˜€‚˙ENDOFh-#†¸†; F€Z€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.1343 ENDOF Ťend-ofťCORE EXT܇P†”‡U x€€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: case-sys1 of-sys -- case-sys2 )C¸†1‰Z ‚€‡€Œ˜RQ‚9€€€€€€€€€€€€€€€‚˙Mark the end of the OF ... ENDOF part of the CASE structure. The next location for a transfer of control resolves the reference given by of-sys. Append the run-time semantics given below to the current definition. Replace case-sys1 with case-sys2 on the control-flow stack, to be resolved by ENDCASE.H”‡y‰3 6€*€^Œ˜RQł~‚9€ƒ€ƒ‚˙Run-time:( -- )…P1‰ţ‰5 :€ €Œ˜RQ‚9€€€€‚˙Continue execution at the location specified by the consumer of case-sys2.ŚFy‰¤Š` €Œ€^Œ˜RQł~‚9€ƒ€ƒ€ă9˛Ý󀉀€ă3 d€‰€€ă~Ŕ]€‰€‚˙See:6.2.0873 CASE, 6.2.1342 ENDCASE, 6.2.1950 OF.+ţ‰ϊ( €€R‚9€‚˙6¤Š‹1Š˙˙˙˙˙˙˙˙œ‹2‹ŞŒERASE-ϊ2‹% €€˜˜€‚˙ERASEP!‹‚‹/ .€B€‘€‚H€€€ƒƒ‚˙6.2.1350 ERASE CORE EXTJ2‹̋6 <€(€Œ˜RQ‚H€€€€€‚˙( addr u -- )ľx‚‹Œ= J€đ€Œ˜RQ‚H€€€€€€€‚˙If u is greater than zero, clear all bits in each of u consecutive address units of memory beginning at addr .)̋ŞŒ& €€R‚H€‚˙7ŒáŒ10˙˙˙˙˙˙˙˙áŒôÁEXPECT. ŞŒ% €€˜˜€‚˙EXPECTQ"áŒ`/ .€D€‘€‚H€€€ƒƒ‚˙6.2.1390 EXPECT CORE EXTLŹ5 :€.€˜RS‚H€€€€€‚˙( c-addr +n -- )™e`E4 6€Ë€˜RS‚H€€€‚˙Receive a string of at most +n characters. Display graphic characters as they are received. A program that depends on the presence or absence of non-graphic characters in the string has an environmental dependency. The editing functions, if any, that the system performs in order to construct the string of characters are implementation-defined.(öŹyŔ2 2€í€˜RS‚H€€€‚˙Input terminates when an implementation-defined line terminator is received or when the string is +n characters long. When input terEyŔŞŒminates, nothing is appended to the string and the display is maintained in an implementation-defined way.v;EďŔ; F€v€˜RS‚H€€€ăpo€€‰€‚˙Store the string at c-addr and its length in SPAN.ږyŔÉÁD V€-€^Œ˜RQł~‚9€ƒ€ƒ€ăE\W €‚˙Note:This word is obsolescent and is included as a concession to existing implementations. Its function is superseded by 6.1.0695 ACCEPT.+ďŔôÁ( €€R‚9€‚˙6ÉÁ*Â1”˙˙˙˙˙˙˙˙ž*ÂWÂşĂFALSE-ôÁWÂ% €€˜˜€‚˙FALSEP!*§Â/ .€B€‘€‚H€€€ƒƒ‚˙6.2.1485 FALSE CORE EXTAWÂčÂ0 0€"€Œ˜RQ‚H€€€‚˙( -- false )I§Â1Ă0 0€2€Œ˜RQ‚H€€€‚˙Return a false flag.^čĂB T€8€^Œ˜RQł~‚9€ƒ€€ƒ€ăŮ所‚˙See:3.1.3.1 Flags+1ĂşĂ( €€R‚9€‚˙4ĂîĂ1a˙˙˙˙˙˙˙˙ŸîĂÄIĹHEX+şĂÄ% € €˜˜€‚˙HEXNîĂgÄ/ .€>€‘€‚H€€€ƒƒ‚˙6.2.1660 HEX CORE EXT3 ÄšÄ* $€€Œ˜RQ‚H€‚˙( -- )]'gÄ÷Ä6 <€N€Œ˜RQ‚H€ăţ‡ë€‰€‚˙Set contents of BASE to sixteen.)šÄ Ĺ& €€R‚H€‚˙)÷ÄIĹ& €€R‚H€‚˙7 Ĺ€Ĺ1˜˙˙˙˙˙˙˙˙ €ĹŽĹĘMARKER. IĹŽĹ% €€˜˜€‚˙MARKERU#€ĹĆ2 4€F€‘€‚H€€€ƒƒ€‚˙6.2.1850 MARKER CORE EXTQŽĹTĆ5 :€8€˜RS‚H€€€€€‚˙( Ťnameť -- )ɒĆÇ7 <€%€˜RS‚H€€€€€‚˙Skip leading space delimiters. Parse name delimited by a space. Create a definition for name with the execution semantics defined below.VTĆsÇ9 B€:€^Œ˜RQł~‚9€ƒ€€€ƒ‚˙name Execution:( -- )Í‘Ç@É< F€#€˜RS‚9€€€€€‚˙Restore all dictionary allocation and search order pointers to the state they had just prior to the definition of name. Remove the definition of name and all subsequent definitions. Restoration of any structures still existing that could refer to deleted definitions or deallocated data space is not necessarily provided. No other contextual information such as numeric base is affected.4sÇżÉK f€h€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所€€€‚˙See:3.4.1 Parsing, 15.6.2.1580 FORGET.+@ÉęÉ( €€R‚9€‚˙+żÉĘ( €€R‚9€‚˙4ęÉIĘ1‡˙˙˙˙˙˙˙˙ĄIĘtĘĘËNIP+ĘtĘ% € €˜˜€‚˙NIPNIĘÂĘ/ .€>€‘€‚H€€€ƒƒ‚˙6.2.1930 NIP CORE EXT_tĘ!ËD X€6€˜RS‚H€€€€€€€€€€‚˙( x1 x2 -- x2 )W.ÂĘxË) "€\€˜RS‚H€‚˙Drop the first item below the top of stack.)!ËĄË& €€R‚H€‚˙)xËĘË& €€R‚H€‚˙3ĄËýË1˙˙˙˙˙˙˙˙˘ýË'ĚŕOF*ĘË'Ě% € €˜˜€‚˙OFMýËtĚ/ .€<€‘€‚H€€€ƒƒ‚˙6.2.1950 OF CORE EXTŻm'Ě#ÍB T€Ú€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( C: -- of-sys )ÎtĚ7ÎF Z€€˜RS‚9€€€€€ă4 d€‰€‚˙Put of-sys onto the control flow stack. Append the run-time semantics given below to the current definition. The semantics are incomplete until resolved by a consumer of of-sys such as ENDOF.y+#Í°ÎN l€V€^Œ˜RQł~‚9€ƒ€ƒ€€€€€€€€€‚˙Run-time:( x1 x2 -- | x1 )2ř7Î : B€ń€˜RS‚9€€€€€‚˙If the two values on the stack are not equal, discard the top value and continue execution at the location specified by the consumer of of-sys, e.g., following the next ENDOF. Otherwise, discard both values and continue execution in line.°Î ĘËŠI°Îľ` €’€^Œ˜RQł~‚9€ƒ€ƒ€ă9˛Ý󀉀€ă3 d€‰€€ă4 d€‰€‚˙See:6.2.0873 CASE, 6.2.1342 ENDCASE, 6.2.1343 ENDOF.+ ŕ( €€R‚9€‚˙4ľ1˙˙˙˙˙˙˙˙Ł?(PAD+ŕ?% € €˜˜€‚˙PADN/ .€>€‘€‚H€€€ƒƒ‚˙6.2.2000 PAD CORE EXTA?Î/ .€$€˜RS‚H€€€‚˙( -- c-addr )˜kf- *€Ö€˜RS‚H€€‚˙c-addr is the address of a transient region that can be used to hold data for intermediate processing.l.ÎŇ> L€\€\˜RSą~‚9€ƒ€ƒ€ăćűÝ㉀‚˙See:3.3.3.6 Other transient regions.+fý( €€R‚9€‚˙+Ň(( €€R‚9€‚˙6ý^1é˙˙˙˙˙˙˙˙¤^‹CPARSE-(‹% €€˜˜€‚˙PARSEP!^Ű/ .€B€‘€‚H€€€ƒƒ‚˙6.2.2008 PARSE CORE EXTt-‹OG ^€Z€˜RS‚H€€€€€€€€€€€‚˙( char Ťcccť -- c-addr u )f1Űľ5 :€b€˜RS‚H€€€€€‚˙Parse ccc delimited by the delimiter char.ÚŚO4 6€M€˜RS‚H€€€€‚˙c-addr is the address (within the input buffer) and u is the length of the parsed string. If the parse area was empty, the resulting string has a zero length.^ľíA R€:€\˜RSą~‚9€ƒ€€ƒ€ăK5所‚˙See:3.4.1 Parsing.+( €€R‚9€‚˙+íC( €€R‚9€‚˙5x1h˙˙˙˙˙˙˙˙Ľx¤ŰPICK,C¤% €€˜˜€‚˙PICKO xó/ .€@€‘€‚H€€€ƒƒ‚˙6.2.2030 PICK CORE EXTŽ?¤Ąo Ž€~€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€€‚˙( xu ... x1 x0 u -- xu ... x1 x0 xu )č˘ó‰F Z€E€˜RS‚H€€€€€€€€€€‚˙Remove u. Copy the xu to the top of the stack. An ambiguous condition exists if there are less than u+2 items on the stack before PICK is executed.)Ą˛& €€R‚H€‚˙)‰Ű& €€R‚H€‚˙6˛ 1Ć˙˙˙˙˙˙˙˙Ś > Ó QUERY-Ű> % €€˜˜€‚˙QUERYP! Ž / .€B€‘€‚H€€€ƒƒ‚˙6.2.2040 QUERY CORE EXT3 > Á * $€€Œ˜RQ‚H€‚˙( -- )%Ꭰć D V€Ă€˜RS‚H€ă&›Óˆ€‰€ăşp(€‰€‚˙Make the user input device the input source. Receive input into the terminal input buffer, replacing any previous contents. Make the result, whose address is returned by TIB, the input buffer. Set >IN to zero.—aÁ } 6 <€Â€^Œ˜RQł~‚9€ƒƒ€€‚˙Note:This word is obsolescent and is included as a concession to existing implementations.+ć ¨ ( €€R‚9€‚˙+} Ó ( €€R‚9€‚˙7¨  15˙˙˙˙˙˙˙˙§ 8 H@REFILL. Ó 8 % €€˜˜€‚˙REFILLQ" ‰ / .€D€‘€‚H€€€ƒƒ‚˙6.2.2125 REFILL CORE EXT@8 É 0 0€ €Œ˜RQ‚H€€€‚˙( -- flag )‹`‰ T + &€Ŕ€Œ˜RQ‚H€‚˙Attempt to fill the input buffer from the input source, returning a true flag if successful.˘]É öE X€ť€˜RS‚H€ăşp(€‰€€€€€‚˙When the input source is the user input device, attempt to receive input into the terminal input buffer. If successful, make the result the input buffer, set >IN to zero, and return true. Receipt of a line containing no characters is considered successful. If there is no input available from the current input source, return false. dT –< H€Č€˜RS‚H€ă1 d€‰€€€‚˙When the input source is a string from EVALUATE, return false and perform no other action.{6ö@E Z€l€^Œ˜RQł~‚9€ƒ€ƒ€€€€€€‚˙See:7.6.2.2125 REFILL, 11.6.2–@Ó .2125 REFILL.+–H@( €€R‚9€‚˙> @†@1˙˙˙˙˙˙˙˙¨†@ť@ŚCRESTORE-INPUT5H@ť@% € €˜˜€‚˙RESTORE-INPUTX)†@A/ .€R€‘€‚H€€€ƒƒ‚˙6.2.2148 RESTORE-INPUT CORE EXTl$ť@AH `€H€Œ˜RQ‚H€€€€€€€€€€€‚˙( xn ... x1 n -- flag )đ­AoBC T€[€˜RS‚H€€€€€€€€€‚˙Attempt to restore the input source specification to the state described by x1 through xn. flag is true if the input source specification cannot be so restored.ŠAC* $€ţ€˜RS‚H€‚˙An ambiguous condition exists if the input source represented by the arguments is not the same as the current input source.c$oB{C? N€H€^Œ˜RQł~‚9€ƒ€€ƒ€€€‚˙See:A.6.2.2182 SAVE-INPUT.+CŚC( €€R‚9€‚˙5{CŰC16˙˙˙˙˙˙˙˙ŠŰCD FROLL,ŚCD% €€˜˜€‚˙ROLLO ŰCVD/ .€@€‘€‚H€€€ƒƒ‚˙6.2.2150 ROLL CORE EXTŁ=DůDf œ€z€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€‚˙( xu xu-1 ... x0 u -- xu-1 ... x0 xu )ęŚVDăED V€M€Œ˜RQ‚H€€€€€€€€€‚˙Remove u. Rotate u+1 items on the top of the stack. An ambiguous condition exists if there are less than u+2 items on the stack before ROLL is executed.)ůD F& €€R‚H€‚˙; ăEGF1Ë˙˙˙˙˙˙˙˙ŞGFyFHSAVE-INPUT2 FyF% €€˜˜€‚˙SAVE-INPUTU&GFÎF/ .€L€‘€‚H€€€ƒƒ‚˙6.2.2182 SAVE-INPUT CORE EXT_yF-GB T€:€Œ˜RQ‚H€€€€€€€€€‚˙( -- xn ... x1 n )˝wÎFęGF \€î€Œ˜RQ‚H€€€€€€ăůCży€‰€‚˙x1 through xn describe the current state of the input source specification for later use by RESTORE-INPUT.)-GH& €€R‚H€‚˙: ęGMH1Ş˙˙˙˙˙˙˙˙ŤMH~H÷JSOURCE-ID1 H~H% €€˜˜€‚˙SOURCE-IDp5MHîH; F€j€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.2218 SOURCE-ID Ťsource-i-dťCORE EXT:~H(I* $€ €Œ˜RQ‚H€‚˙( -- 0 | -1 )T*îH|I* $€T€Œ˜RQ‚H€‚˙Identifies the input source as follows:M(IÉI3 6€4€xRƒýă~B‚H€€ƒ‚˙SOURCE-IDInput sourcew5|I@JB T€j€x°ƒýă~J‚e‚€ƒƒă1 d€‰€‚ƒƒ‚˙-1String (via EVALUATE)0User input device-ÉImJ* $€€8RČȂe‚€‚˙_#@JĚJ< H€F€^Œ˜RQł~‚9€ƒ€ƒ€€€‚˙See:11.6.1.2218 SOURCE-ID.+mJ÷J( €€R‚9€‚˙5ĚJ,K1+˙˙˙˙˙˙˙˙Ź,KXKRMSPAN,÷JXK% €€˜˜€‚˙SPANO ,K§K/ .€@€‘€‚H€€€ƒƒ‚˙6.2.2240 SPAN CORE EXTAXKčK/ .€$€˜RS‚H€€€‚˙( -- a-addr )Źs§K”L9 B€ć€˜RS‚H€€ă6 d€‰€‚˙a-addr is the address of a cell containing the count of characters stored by the last execution of EXPECT.“`čK'M3 6€Ŕ€^Œ˜RQł~‚9€ƒ€ƒ‚˙Note:This word is obsolescent and is included as a concession to existing implementations.+”LRM( €€R‚9€‚˙4'M†M1ř˙˙˙˙˙˙˙˙­†MąMxOTIB+RMąM% € €˜˜€‚˙TIBe*†MN; F€T€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.2290 TIB Ťt-i-bťCORE EXTAąMWN/ .€$€˜RS‚H€€€‚˙( -- c-addr )c7NşN, (€n€˜RS‚H€€‚˙c-addr is the address of the terminal input buffer.“`WNMO3 6€Ŕ€^Œ˜RQł~‚9€ƒƒ€‚˙Note:This word is obsolescent and is included as a concession to existing implementations.+şNxO( €€R‚9€‚˙3MOŤO1P˙˙˙˙˙˙˙˙ŽŤOŐOç„TO*xOŐO% € €˜˜€‚˙TOMŤO.€/ .€<€‘€‚H€€€ŐO.€xOƒƒ‚˙6.2.2295 TO CORE EXTw2ŐOĽ€E Z€d€^Œ˜RQł~‚9€ƒ€ƒ€€€€€€‚˙Interpretation:( x Ťnameť -- )ě›.€‘Q p€7€˜RS‚9€€€€€€€€€ăšňYš€‰€‚˙Skip leading spaces and parse name delimited by a space. Store x in name. An ambiguous condition exists if name was not defined by VALUE.j+Ľ€ű? N€V€^Œ˜RQł~‚9€ƒ€ƒ€€€€‚˙Compilation:( Ťnameť -- )̑ ƒF Z€™€˜RS‚9€€€€€ăšňYš€‰€‚˙Skip leading spaces and parse name delimited by a space. Append the run-time semantics given below to the current definition. An ambiguous condition exists if name was not defined by VALUE.Rű_ƒ9 B€2€^Œ˜RQł~‚9€ƒ€ƒ€€‚˙Run-time:( x -- )N ƒ­ƒ7 >€.€˜RS‚9€€€€€‚˙Store x in name.–_ƒź„y Ŕ€-€^Œ˜RQł~‚9€ƒ€ƒă7ěĆe€‰€ă<˛Ý󀉀€€‚€ƒ€ƒ€ăšňYš€‰€€ă'›Óˆ€‰€‚˙Note:An ambiguous condition exists if either POSTPONE or [COMPILE] is applied to TO.See:6.2.2405 VALUE, 13.6.1.2295 TO.+­ƒç„( €€R‚9€‚˙5ź„…1¸˙˙˙˙˙˙˙˙Ż…H…φTRUE,ç„H…% €€˜˜€‚˙TRUEO …—…/ .€@€‘€‚H€€€ƒƒ‚˙6.2.2298 TRUE CORE EXT@H…ׅ0 0€ €Œ˜RQ‚H€€€‚˙( -- true )n?—…E†/ .€~€˜RS‚H€€€‚˙Return a true flag, a single-cell value with all bits set._ׅ¤†B T€:€^Œ˜RQł~‚9€ƒ€€ƒ€ăŮ所‚˙See:3.1.3.1 Flags.+E†φ( €€R‚9€‚˙5¤†‡1˙˙˙˙˙˙˙˙°‡0‡ˆTUCK,φ0‡% €€˜˜€‚˙TUCKO ‡‡/ .€@€‘€‚H€€€ƒƒ‚˙6.2.2300 TUCK CORE EXT~'0‡ý‡W ~€N€Œ˜RQ‚H€€€€€€€€€€€€€€€€‚˙( x1 x2 -- x2 x1 x2 )i?‡fˆ* $€~€Œ˜RQ‚H€‚˙Copy the first (top) stack item below the second stack item.)ý‡ˆ& €€R‚H€‚˙4fˆÈ1&˙˙˙˙˙˙˙˙ąĂˆîˆăŠU.R+ˆîˆ% € €˜˜€‚˙U.Rg,ÈU‰; F€X€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.2330 U.R Ťu-dot-rťCORE EXTG‰6 <€"€Œ˜RQ‚H€€€€€‚˙( u n -- )ŮU‰şŠE X€ł€Œ˜RQ‚H€€€€€€€€€‚˙Display u right aligned in a field n characters wide. If the number of characters required to display u is greater than n, all digits are displayed with no leading spaces in a field as wide as necessary.)œ‰ăŠ& €€R‚H€‚˙3şŠ‹1ú˙˙˙˙˙˙˙˙˛‹@‹ U>*ăŠ@‹% € €˜˜€‚˙U>m2‹­‹; F€d€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.2350 U> Ťu-greater-thanťCORE EXT^@‹ ŒB T€8€Œ˜RQ‚H€€€€€€€€€‚˙( u1 u2 -- flag ){<­‹†Œ? N€x€Œ˜RQ‚H€€€€€€€€‚˙flag is true if and only if u1 is greater than u2.X Œތ? N€2€^Œ˜RQł~‚9€ƒƒ€ă*ŹJż€‰€‚˙See:6.1.0540 >.+†Œ ( €€R‚9€‚˙7ތ@1˙˙˙˙˙˙˙˙ł@nźŽUNUSED. n% €€˜˜€‚˙UNUSEDQ"@ż/ .€D€‘€‚H€€€ƒƒ‚˙6.2.2395 UNUSED CORE EXT= nü0 0€€Œ˜RQ‚H€€€‚˙( -- u )—^ż“Ž9 B€ź€Œ˜RQ‚H€€ă_Ž­€‰€‚˙u is the amount of space remaining in the region addressed by HERE , in address units.)üźŽ& €€R‚H€‚˙6“ŽňŽ1Ą˙˙˙˙˙˙˙˙´ňŽ*ĂVALUE-źŽ% €€˜˜€‚˙VALUEP!ňŽo/ .€B€‘€‚H€€€ƒƒ‚˙6.2.2405 VALUE CORE EXT\ ˏ< H€@€Œ˜RQ‚H€€€€€€€‚˙( x Ťnameť -- )ôśoËŔ> J€m€Œ˜RQ‚H€€€€€ˏËŔźŽ€€‚˙Skip leading space delimiters. Parse name delimited by a space. Create a definition for name with the execution semantics defined below, with an initial value equal to x.b)ˏ-Á9 B€R€Œ˜RQ‚H€€€€€€‚˙name is referred to as a Ťvalueť.`!ËŔÁ? N€B€^Œ˜RQł~‚9€ƒ€€€ƒ€€‚˙name Execution:( -- x )ş-Á ÂY €€u€Œ˜RQ‚9€€€€€€€€ă'›Óˆ‰€€€€€‚˙Place x on the stack. The value of x is that given when name was created, until the phrase x TO name is executed, causing a new value of x to be associated with name._Á˙ÂB T€:€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所‚˙See:3.4.1 Parsing.+ Â*Ă( €€R‚9€‚˙7˙ÂaĂ1˜˙˙˙˙˙˙˙˙ľaÏĂöÇWITHIN. *ÏĂ% €€˜˜€‚˙WITHINQ"aĂŕĂ/ .€D€‘€‚H€€€ƒƒ‚˙6.2.2440 WITHIN CORE EXTš4ĂzÄf œ€h€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€‚˙( n1|u1 n2|u2 n3|u3 -- flag )SŐŕĂÍÇ~ ʂŤ€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚˙Perform a comparison of a test value n1|u1 with a lower limit n2|u2 and an upper limit n3|u3, returning true if either (n2|u2 < n3|u3 and (n2|u2 <= n1|u1 and n1|u1 < n3|u3)) or (n2|u2 > n3|u3 and (n2|u2 <= n1|u1 or n1|u1 < n3|u3)) is true, returning false otherwise. An ambiguous condition exists if n1|u1, n2|u2, and n3|u3 are not all the same type.)zÄöÇ& €€R‚H€‚˙: ÍÇ0Č1[˙˙˙˙˙˙˙˙ś0ČaČ‹Ë[COMPILE]1 öÇaČ% €€˜˜€‚˙[COMPILE]u:0ČÖČ; F€t€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.2530 [COMPILE] Ťbracket-compileťCORE EXTźtaČ’ÉH `€č€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Interpretation:Interpretation semantics for this word are undefined.Compilation:( Ťnameť -- )o!ÖČËN j€C€Œ˜RQ‚9€€€€€€€€€€€‚˙Skip leading space delimiters. Parse name delimited by a space. Find name. If name has other than default compilation semantics, append them to the current definition; otherwise append the execution semantics of name. An ambiguous condition exists if name is not found._’É`ËB T€:€^Œ˜RQł~‚9€ƒ€€ƒ€ăK5所‚˙See:3.4.1 Parsing.+Ë‹Ë( €€R‚9€‚˙2`Ë˝Ë1r˙˙˙˙˙˙˙˙ˇ˝ËćË'Î\)‹ËćË% €€˜˜€‚˙\g,˝ËMĚ; F€X€‘€‚H€€€ƒ€€€€ƒ‚˙6.2.2535 \ ŤbackslashťCORE EXTŠaćËöĚH `€Â€^Œ˜RQł~‚9€ƒ€ƒ‚€ƒ€ƒ€€€€‚˙Compilation:Perform the execution semantics given below.Execution:( Ťcccť-- )‚PMĚxÍ2 4€ €Œ˜RQ‚9€€€‚˙Parse and discard the remainder of the parse area. \ is an immediate word.ZöĚŇÍ? N€6€^Œ˜RQł~‚9€ƒ€€ƒ€€€‚˙See:7.6.2.2535 \.+xÍýÍ( €€R‚9€‚˙*ŇÍ'Î' €€‚9€‚˙1ýÍXÎ1˙˙˙˙˙˙˙˙¸XÎ˙˙˙˙¨ÎP,'ΨÎ$ €X€˜˜€˙nononoANS94 Chapter 331Chap3yesyes20/07/01BXÎęÎ1˙˙˙˙˙˙˙˙šęÎ'ĎŸ Table of Contents=¨Î'Ď( €*€˜˜€€‚˙Table of ContentsGęÎnĎ* $€:€€‚ă›S牂˙3. Usage requirements@'ĎŽĎ+ &€*€‘€ăy2ß〉‚˙3.1 Data typesp>nĎ* 2 4€|€!ăz2ß〉‚ăȍ㉂˙3.1.1 Data-type relationshipŽĎ* ¨Îs3.1.2 Character types‰KŽĎł > L€–€ąă?ŒçŤ€€€‰‚ăÜžůŤ€€‰‚˙Table 3.1 – Data types Table 3.2 – Standard graphic characters ˆO* ; 9 B€ž€!ăŮ怉‚ă|-Śă‰‚ăزí扂˙3.1.3 Single-cell types3.1.4 Cell-pair types3.1.5 System typesT)ł  + &€R€‘€ă8…瀉‚˙3.2 The implementation environment[); ę 2 4€R€!ă.öĚ倉‚ă1Ë&㉂˙3.2.1 Numbers3.2.2 Arithmetic•W  > L€Ž€ąăeů髀€€‰‚ăÝžůŤ€€‰‚˙Table 3.3 – Floored Division Example Table 3.4 – Symmetric Division ExampleŚfę % @ P€Ě€!ăŁËŃ怉‚ă扂ă|łĺ‰‚ăqš䉂˙3.2.3 Stacks3.2.4 Operator terminal3.2.5 Mass storage3.2.6 Environmental queries`/ … 1 2€^€ąăŇÂ諀€€‰‚˙Table 3.5 – Environmental Query Strings J% Ď + &€>€‘€ăá瀉‚˙3.3 The Forth dictionaryzA… I 9 B€‚€!ăĐŚç倉‚ă5ѩ㉂ăćűÝ㉂˙3.3.1 Name space3.3.2 Code space3.3.3 Data spaceP%Ď ™ + &€J€‘€ă€á瀉‚˙3.4 The Forth text interpreterޖI w H ^€-€!ăK5怉‚ăŤ4䉂ă¤ËŃ扂ăÜ%:扂㓠ă‰‚˙3.4.1 Parsing3.4.2 Finding definition names3.4.3 Semantics3.4.4 Possible actions on an ambiguous condition3.4.5 Compilation(™ Ÿ $ €€€‚‚˙1w Đ 1É˙˙˙˙˙˙˙˙ş˙˙˙˙Đ h V+Ÿ & + $€W€€€ €‚‚˙Help file produced by HELLLP! v3.1b , a product of Guy Software, on 20/07/01 for Unregistered User.The above table of contents will be automatically completed and will also provide an excellent cross-reference for context strings and topic titles. You may leave it as your main table of contents for your help file, or you may create your own and cause it to be displayed instead by using the I button on the toolbar. This page will not be displayed as a topic. It is given a context string of _._ , but this is not presented for jump selection.ňĐ @ ( €ĺ€€‚€‚˙HINT: If you do not wish some of your topics to appear in the table of contents as displayed to your users (you may want them ONLY as PopUps), move the lines with their titles and contexts to below this point. If you do this remember to move the whole line, not part. As an alternative, you may wish to set up your own table of contents, see Help under The Structure of a Help File. Do not delete any codes in the area above the Table of Contents title, they are used internally by HELLLP!(& h $ €€€‚‚˙H@ ° 1˙˙˙˙˙˙˙˙ť° ď [ 3. Usage requirements?h ď % €4€˜˜€‚˙3. Usage requirementsH° 7 * $€<€°€ € € ‚˙3. Usage requirements h3ď Ÿ 5 8€g€˜R‘€€€€‚‚˙A system shall provide all of the words defined in 6.1 Core Words. It may also provide any words defined in the optional word sets and extensions word sets. No standard word provided by a system shall alter the system state in a way that changes the effect of execution of any other standard word except as provided in this Standard. A system may contain non-standard extensions, provided that they are consistent with the requirements of this Standard.The implementation of a system may use words and techniques outside the scope of this Standard.ź7 [ , &€!€˜R‘€€‚‚˙A system need not provide all words in executable form. The implementation may provide definitions, including definitions of words in the Core word set, in source form only. If so, the mechanism for adding the definitions to the dictionary is implementation defined.A program that requires a system to provide words or techniques not defined in this Standard has an environmental dependency.AŸ œ 1˙˙˙˙˙˙˙˙źœ "@ wB 3.1 Data types8[ Ô % €&€˜˜€‚˙3.1 Data typesBœ "@ + &€.€°˜€ € € ‚˙Ô "@ [ 3.1 Data types U Ô wB 5 8€A€˜R‘€€‚‚ă?ŒçŤ‰‚˙A data type identifies the set of permissible values for a data object. It is not a property of a particular storage location or position on a stack. Moving a data object shall not affect its type.No data-type checking is required of a system. An ambiguous condition exists if an incorrectly typed data object is encountered.Table 3.1 summarizes the data types used throughout this Standard. Multiple instances of the same type in the description of a definition are suffixed with a sequence digit subscript to distinguish them.P"@ ÇB 1˙˙˙˙˙˙˙˙˝ÇB C mG 3.1.1 Data-type relationshipsG"wB C % €D€˜˜€‚˙3.1.1 Data-type relationshipsP&ÇB ^C * $€L€Ȁ€€‚˙3.1.1 Data-type relationships …C nE ‹ ä€ €˜R‘€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚˙Some of the data types are subtypes of other data types. A data type i is a subtype of type j if and only if the members of i are a subset of the members of j. The following list represents the subtype relationships using the phrase Ťi => jť to denote Ťi is a subtype of jť. The subtype relationship is transitive; if i => j and j => k then i => k:V§^C ÄF Ż ,O€PQ"€€€€€€‚€€€€€€‚€€€€‚€€€€€€€€‚€€€€‚€€€€‚€€€€€€‚€€€€€€‚˙+n => u => x;+n => n => x;char => +n;a-addr => c-addr => addr => u;flag => x;xt => x;+d => d => xd;+d => ud => xd.ŠunE mG 4 8€ę€˜R‘€€€€€€‚˙Any Forth definition that accepts an argument of type i shall also accept an argument that is a subtype of i.HÄF ľG 1•˙˙˙˙˙˙˙˙žľG ôG % 3.1.2 Character types?mG ôG % €4€˜˜€‚˙3.1.2 Character typesHľG >3F??HexIRVASCII40@@41AA42BB43CC44DD45EE46FF47GG48HH49II4AJJ4BKK4CLL4DMM4ENN4FOOHexIRVASCII50PP51QQ52RR53SS54TT55UU56VV57WW58XX59YY5AZZ5B[[5C\\5D]]5E^^5F__HexIRVASCII60``61aa62bb63cc64dd65ee66ff67gg68hh69ii6Ajj6Bkk6Cll6Dmm6Enn6FooHexIRVASCII70pp71qq72rr73ss74tt75uu76vv77ww78xx79yy7Azz7B{{7C||7D}}7E~~3†‡ % 0 0€€8RČȆ7€€ـ€‚˙JňŽ o 1’ ˙˙˙˙˙˙˙˙żo ° {Ë 3.1.3 Single-cell typesA% ° % €8€˜˜€‚˙3.1.3 Single-cell typesJ o Ŕ * $€@€Ȁ€€‚˙3.1.3 Single-cell types ° Ŕ % ŢŹ° ęÁ 2 2€Y€˜R‘€€€€‚‚˙The implementation-defined fixed size of a cell is specified in address units and the corresponding number of bits. See E.2 Hardware peculiarities.Cells shall be at least one address unit wide and contain at least sixteen bits. The size of a cell shall be an integral multiple of the size of a character. Data-stack elements, return-stack elements, addresses, execution tokens, flags, and integers are one cell wide.B Ŕ , , (€,€ŒŒČ€€ €‚˙3.1.3.1 Flags ~GęÁ ŞĂ 7 <€€˜R‘€€€€€€‚‚˙Flags may have one of two logical states, true or false. Programs that use flags as arithmetic operands have an environmental dependency.A true flag returned by a standard word shall be a single-cell value with all bits set. A false flag returned by a standard word shall be a single-cell value with all bits clear.E, ďĂ , (€2€ŒŒČ€€ €‚˙3.1.3.2 Integers $úŞĂ Ĺ * "€ő€˜R‘€€‚‚‚˙The implementation-defined range of signed integers shall include {-32767..+32767}.The implementation-defined range of non-negative integers shall include {0..32767}.The implementation-defined range of unsigned integers shall include {0..65535}.FďĂ YĹ , (€4€ŒŒČ€€ €‚˙3.1.3.3 Addresses ŽTĹ çÇ : B€Š€˜R‘€€ăćűÝ〉€‚‚˙An address identifies a location in data space with a size of one address unit, which a program may fetch from or store into except for the restrictions established in this Standard. The size of an address unit is specified in bits. Each distinct address value identifies exactly one such storage element. See 3.3.3 Data space.The set of character-aligned addresses, addresses at which a character can be accessed, is an implementation-defined subset of all addresses. Adding the size of a character to a character-aligned address shall produce another character-aligned address.ĺźYĹ ĚČ ) €y€˜R‘€€‚˙The set of aligned addresses is an implementation-defined subset of character-aligned addresses. Adding the size of a cell to an aligned address shall produce another aligned address.L çÇ É , (€@€ŒŒČ€€ €‚˙3.1.3.4 Counted strings ’aĚČ ŞĘ 1 0€Ă€˜R‘€€€€‚‚˙A counted string in memory is identified by the address (c-addr) of its length character.The length character of a counted string shall contain a binary representation of the number of data characters, between zero and the implementation-defined maximum length for a counted string. The maximum length of a counted string shall be at least 255.M!É ÷Ę , (€B€ŒŒČ€€ €‚˙3.1.3.5 Execution tokens „]ŞĘ {Ë ' €ş€˜R‘€€‚˙Different definitions may have the same execution token if the definitions are equivalent.H÷Ę ĂË 1^˙˙˙˙˙˙˙˙ŔĂË Ě š 3.1.4 Cell-pair types?{Ë Ě % €4€˜˜€‚˙3.1.4 Cell-pair typesJĂË LĚ , (€<€ŒŒČ€€€‚˙3.1.4 Cell-pair types K!Ě —Í * "€C€˜R‘€€‚˙A cell pair in memory consists of a sequence of two contiguous cells. The cell at the lower address is the first cell, and its address is used to identify the cell pair. Unless otherwise specified, a cell pair on a stack consists of the first cell immediately above the second cell.Q%LĚ čÍ , (€J€ŒŒČ€€ €‚˙3.1.4.1 Double-cell integers Đ“—Í Ä = H€'€˜R‘€€‚‚‚ă.öĚ倉€‚˙On the stack, the cell containing the most significant part of a double-cell integer shall be above the cell containing the least significant part.The implementation-defined range of double-cell signed integers shall include {-2147483647..+2147483647}.The implementation-defined range of double-cell non-negative integers shall include {0..2147483647}.The implementation-defined range of double-cell unsigned integers shall include {0..4294967295}. Placing the singlčÍ Ä {Ë e-cell integer zero on the stack above a single-cell unsigned integer produces a double-cell unsigned integer with the same value. See 3.2.1.1 Internal number representation.N"čÍ  , (€D€ŒŒČ€€ €‚˙3.1.4.2 Character strings §sÄ š 4 8€ć€˜R‘€€€€€€‚˙A string is specified by a cell pair (c-addr u) representing its starting address and length in characters.E ţ 1j ˙˙˙˙˙˙˙˙Áţ : s 3.1.5 System types<š : % €.€˜˜€‚˙3.1.5 System typesCţ } ) "€4€ŒŒČ€€‚˙3.1.5 System types …^:  ' €ź€˜R‘€€‚˙The system data types specify permitted word combinations during compilation and execution.O(} Q ' €P€Ȁ€ ‚˙3.1.5.1 System-compilation types Űˆ , S t€€˜R‘€€€€‚€€‚ăvß ü€‰ăN=şB‰€€€‚˙These data types denote zero or more items on the control-flow stack (see 3.2.3.2). The possible presence of such items on the data stack means that any items already there shall be unavailable to a program until the control-flow-stack items are consumed.The implementation-dependent data generated upon beginning to compile a definition and consumed at its close is represented by the symbol colon-sys throughout this Standard.The implementation-dependent data generated upon beginning to compile a do-loop structure such as DO ... LOOP and consumed at its close is represented by the symbol do-sys throughout this Standard.­BQ Ů k ¤€…€˜R‘€€ă9˛Ýó€‰ă3 d‰€€€‚ă~Ŕ]€‰ă4 d‰€€€‚€€€€‚˙The implementation-dependent data generated upon beginning to compile a CASE ... ENDCASE structure and consumed at its close is represented by the symbol case-sys throughout this Standard.The implementation-dependent data generated upon beginning to compile an OF ... ENDOF structure and consumed at its close is represented by the symbol of-sys throughout this Standard.The implementation-dependent data generated and consumed by executing the other standard control-flow words is represented by the symbols orig and dest throughout this Standard.S', , , (€N€ŒŒČ€€ €‚˙3.1.5.2 System-execution types GŰŮ s l Ś€ˇ€˜R‘€€‚€€‚€€ăşp(€‰€ăŐĺ31€‰€ăL=şB€‰€ăáƖ‘€‰€‚˙These data types denote zero or more items on the return stack. Their possible presence means that any items already on the return stack shall be unavailable to a program until the system-execution items are consumed.The implementation-dependent data generated upon beginning to execute a definition and consumed upon exiting it is represented by the symbol nest-sys throughout this Standard.The implementation-dependent loop-control parameters used to control the execution of do-loops are represented by the symbol loop-sys throughout this Standard. Loop-control parameters shall be available inside the do-loop for words that use or change these parameters, words such as I, J, LEAVE and UNLOOP.U$, Č 1÷˙˙˙˙˙˙˙˙ÂČ ˙˙˙˙j 3.2 The implementation environmentL's  % €N€˜˜€‚˙3.2 The implementation environmentV+Č j + &€V€°˜€ € € ‚˙3.2 The implementation environment @ Ş 1ž˙˙˙˙˙˙˙˙ĂŞ á @F 3.2.1 Numbers7j á % €$€˜˜€‚˙3.2.1 NumberstCŞ U 1 2€†€Ȁ€‚€€ €‚˙3.2.1 Numbers 3.2.1.1 Internal number representation c,á ¸ 7 <€Y€˜R‘€€€€€€‚‚˙This Standard allows one’s complement, two’s complement, or sign-magnitude number representations and arithmetic. Arithmetic zero is represented as the value of a single cell with all bits clear.The representation of a number as a compiled literal or in memory is implementation dependent.G U @ ' €@€Ȁ€ ‚˙3.2.1.2 Digit conversion ¸ @ j Đ^¸ ÜC r ˛€˝€˜R‘€€‚‚ăţ‡ë€‰€€€€€€€€€€€€€€€€€€€‚˙Numbers shall be represented externally by using characters from the standard character set.Conversion between the internal and external forms of a digit shall behave as follows:The value in BASE is the radix for number conversion. A digit has a value ranging from zero to one less than the contents of BASE. The digit with the value zero corresponds to the character Ť0ť. This representation of digits proceeds through the character set to the decimal value nine corresponding to the character Ť9ť. For digits beginning with the decimal value ten the graphic characters beginning with the character ŤAť are used. This correspondence continues up to and including the digit with the decimal value thirty-five which is represented by the character ŤZť. The conversion of digits outside this range is implementation defined.T* @ 0D * $€T€Ȁ€ €‚˙3.2.1.3 Free-field number display ×ÜC @F 9 @€Ż€˜R‘€€‚ăćűÝ〉€‚˙Free-field number display uses the characters described in digit conversion, without leading zeros, in a field the exact size of the converted string plus a trailing space. If a number is zero, the least significant digit is not considered a leading zero. If the number is negative, a leading minus sign is displayed.Number display may use the pictured numeric output string buffer to hold partially converted strings (see 3.3.3.6 Other transient regions).C0D ƒF 1„ ˙˙˙˙˙˙˙˙ăF ˝F ‚ 3.2.2 Arithmetic:@F ˝F % €*€˜˜€‚˙3.2.2 Arithmetici8ƒF &G 1 2€p€Ȁ€‚€€ €‚˙3.2.2 Arithmetic 3.2.2.1 Integer division *•˝F PJ • ř€+€˜R‘€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€‚€€€€€€€€‚˙Division produces a quotient q and a remainder r by dividing operand a by operand b. Division operations return q, r, or both. The identity b*q + r = a shall hold for all a and b.When unsigned integers are divided and the remainder is not zero, q is the largest integer less than the true quotient.When signed integers are divided, the remainder is not zero, and a and b have the same sign, q is the largest integer less than the true quotient. If only one operand is negative, whether q is rounded toward negative infinity (floored division) or rounded towards zero (symmetric division) is implementation defined.ź&G RM F Z€y€˜R‘€€€€€€€€€€‚‚˙Floored division is integer division in which the remainder carries the sign of the divisor or is zero, and the quotient is rounded to its arithmetic floor. Symmetric division is integer division in which the remainder carries the sign of the dividend or is zero and the quotient is the mathematical quotient Ťrounded towards zeroť or Ťtruncatedť. Examples of each are shown in tables 3.3 and 3.4.In cases where the operands differ in sign and the rounding direction matters, a program shall either include code generating the desired form of division, not relying on the implementation-defined default result, or have an environmental dependency on the desired rounding direction.U*PJ §M + &€T€˜˜€€"€‚˙Table 3.3 – Floored Division Example `-RM N 3 6€Z€:°RČȀ!€$€!€€!‚˙Table 3.3 – Floored Division Example a'§M hN : D€N€8RČČ ˆŁ€iA‚ƒ€ƒƒƒƒ‚˙DividendDivisorRemainderQuotientv2N ŢN D X€d€8RČČHˆ´iA€ƒƒƒƒ‚ƒƒƒƒ‚ƒƒƒƒ‚ƒƒƒƒ‚˙10731-1074-210-7-4-2-10-7-311hN O . ,€€8RČȈ´iA€‚˙^+ŢN mO 3 6€V€ ˜˜ˆ´iA€€"€‚˙Table 3.4 – Symmetric Division Example`+O ÍO 5 :€V€: °RČȈ´iA€!€$€!‚˙Table 3.4 – Symmetric Division Examplea'mO :€ : D€N€8RČČ ˆŁ€iA‚ƒ€ÍO :€ @F ƒƒƒƒ‚˙DividendDivisorRemainderQuotientv2ÍO °€ D X€d€8RČČHˆ´iA€ƒƒƒƒ‚ƒƒƒƒ‚ƒƒƒƒ‚ƒƒƒƒ‚˙10731-107-3-110-73-1-10-7-311:€ ဠ. ,€€8RČȈ´iA€‚˙[)°€ < 2 4€R€Ȉ´iA€€ €‚˙3.2.2.2 Other integer operations ŕŻá€ ‚ 1 0€_€˜R‘€ˆ´iA€‚˙In all integer arithmetic operations, both overflow and underflow shall be ignored. The value returned when either overflow or underflow occurs is implementation defined.?< [‚ 1Á ˙˙˙˙˙˙˙˙Ĺ[‚ ‘‚ !Œ 3.2.3 Stacks6‚ ‘‚ % €"€˜˜€‚˙3.2.3 Stacksc/[‚ ô‚ 4 8€^€Ȁ€€‚€€ €‚˙3.2.3 Stacks 3.2.3.1 Data stack [4‘‚ Oƒ ' €h€˜R‘€€‚˙Objects on the data stack shall be one cell wide.M#ô‚ œƒ * $€F€Ȁ€ €‚˙3.2.3.2 Control-flow stack 9 Oƒ Ն 0 .€€˜R‘€€‚‚‚˙The control-flow stack is a last-in, first out list whose elements define the permissible matchings of control-flow words and the restrictions imposed on data-stack usage during the compilation of control structures.The elements of the control-flow stack are system-compilation data types.The control-flow stack may, but need not, physically exist in an implementation. If it does exist, it may be, but need not be, implemented using the data stack. The format of the control-flow stack is implementation defined. Since the control-flow stack may be implemented using the data stack, items placed on the data stack are unavailable to a program after items are placed on the control-flow stack and remain unavailable until the control-flow stack items are removed.Gœƒ ‡ * $€:€Ȁ€ €‚˙3.2.3.3 Return stack ´ˆՆ Ј , &€€˜R‘€€‚‚˙Items on the return stack shall consist of one or more cells. A system may use the return stack in an implementation-dependent manner during the compilation of definitions, during the execution of do-loops, and for storing run-time nesting information.A program may use the return stack for temporary storage during the execution of a definition subject to the following restrictions:€Ž‡ P‹ Ň r]€\ˆRـ:‚H€€ƒăŻCMw€‰€ăŽCMw€‰€ăUŹJż€‰€ăTŹJż€‰€ă­CMw€‰€ăŰ-’Ă€‰€‚€€ƒ‚€€ƒăşp(€‰€ăŐĺ31€‰€ăN=şB€‰€ăK=şB€‰€ăáƖ‘€‰€ăL=şB€‰€‚˙–A program shall not access values on the return stack (using R@, R>, 2R@ or 2R>) that it did not place there using >R or 2>R;–A program shall not access from within a do-loop values placed on the return stack before the loop was entered;–All values placed on the return stack within a do-loop shall be removed before I, J, LOOP, +LOOP, UNLOOP, or LEAVE is executed;ѕЈ !Œ < F€+€\˜Rـ:‚H€€ƒă2 d€‰€‚˙–All values placed on the return stack within a definition shall be removed before the definition is terminated or before EXIT is executed.JP‹ kŒ 1‹˙˙˙˙˙˙˙˙ĆkŒ ŹŒ  3.2.4 Operator terminalA!Œ ŹŒ % €8€˜˜€‚˙3.2.4 Operator terminalFkŒ ňŒ ' €>€Ȁ€‚˙3.2.4 Operator terminal GŹŒ 9 - *€4€˜R‘€€€€‚˙See 1.2.2 Exclusions.H!ňŒ  ' €B€Ȁ€ ‚˙3.2.4.1 User input device É 9 JŽ ) €A€˜R‘€€‚‚˙The method of selecting the user input device is implementation defined.The method of indicating the end of an input line of text is implementation defined.I" “Ž ' €D€Ȁ€ ‚˙3.2.4.2 User output device sLJŽ  ' €˜€˜R‘€€‚˙The method of selecting the user output device is implementation defined.E“Ž K 1Ű˙˙˙˙˙˙˙˙ÇK ‡ ˝Ŕ 3.2.5 Mass storage< ‡ % €.€˜˜€‚˙3.2.5 Mass storageEK ̏ * $€6€Ȁ€€‚˙3.2.5 Mass storage 弇 ˝Ŕ ) €y€˜R‘€€‚˙A system n̏ ˝Ŕ  eed not provide any standard words for accessing mass storage. If a system provides any standard word for accessing mass storage, it shall also implement the Block word set.N̏ Á 1ä ˙˙˙˙˙˙˙˙Č Á PÁ Ě 3.2.6 Environmental queriesE ˝Ŕ PÁ % €@€˜˜€‚˙3.2.6 Environmental queriesJ# Á šÁ ' €F€Ȁ€‚˙3.2.6 Environmental queries —NPÁ 1Ă I `€€˜R‘€€ă0 d€‰€€€€€€€‚˙The name spaces for ENVIRONMENT? and definitions are disjoint. Names of definitions that are the same as ENVIRONMENT? strings shall not impair the operation of ENVIRONMENT?. Table 3.5 contains the valid input strings and corresponding returned value for inquiring about the programming environment with ENVIRONMENT?.X-šÁ ‰Ă + &€Z€˜˜€€"€‚˙Table 3.5 – Environmental Query Strings c01Ă ěĂ 3 6€`€:°RČȀ!€$€!€€!‚˙Table 3.5 – Environmental Query Strings e+‰Ă QÄ : D€V€zŒRŠƒÝ€3}B†Ń‚=ƒŠ€ƒƒƒ‚˙StringValue data typeConstant?Meaning‹ěĂ jĆ Ž ꀀxRŠƒÝ€3}J†Ń‚=ƒŠ€€ƒ€€ƒƒ‚€ƒ€€ƒƒ‚€ƒ€€ƒƒă8ěĆe€‰€‚€ƒ€€ƒƒ‚€ƒ€€ƒƒ€€‚˙/COUNTED-STRINGnyesmaximum size of a counted string, in characters/HOLDnyessize of the pictured numeric output string buffer, in characters/PADnyessize of the scratch area pointed to by PAD, in charactersADDRESS-UNIT-BITSnyessize of one address unit, in bitsCOREflagnotrue if complete core word set present (i.e., not a subset as defined in 5.1.1)7ŁQÄ ĄČ ” ö€G€xRŠƒÝ€3}J†Ń‚=ƒŠ€ƒ€€ƒƒ‚€ƒ€€ƒƒ‚€ƒ€€ƒƒ‚€ƒ€€ƒƒ‚€ƒ€€ƒƒ‚€ƒ€€ƒƒ‚€ƒ€€ƒƒ‚˙CORE-EXTflagnotrue if core extensions word set presentFLOOREDflagyestrue if floored division is the defaultMAX-CHARuyesmaximum value of any character in the implementation-defined character setMAX-Ddyeslargest usable signed double numberMAX-Nnyeslargest usable signed integerMAX-Uuyeslargest usable unsigned integerMAX-UDudyeslargest usable unsigned double numberߊjĆ €É U x€€xRŠƒÝ€3}J†Ń‚=ƒŠ€€ƒ€€ƒƒ‚€€)ƒ€€ƒƒ‚˙RETURN-STACK-CELLSnyesmaximum size of the return stack, in cellsSTACK-CELLSnyesmaximum size of the data stack, in cells2ĄČ ˛É / .€€8RČȆт=ƒŠ€‚˙Qě€É Ě e ˜€Ů€˜R‘€†Ń‚=ƒŠ€ă0 d€‰€€€€€€€€€€€€€‚˙If an environmental query (using ENVIRONMENT?) returns false (i.e., unknown) in response to a string, subsequent queries using the same string may return true. If a query returns true (i.e., known) in response to a string, subsequent queries with the same string shall also return true. If a query designated as constant in the above table returns true and a value in response to a string, subsequent queries with the same string shall return true and the same value.K˛É NĚ 1A˙˙˙˙˙˙˙˙ÉNĚ ÜĚ ěÎ 3.3 The Forth dictionaryBĚ Ě % €:€˜˜€‚˙3.3 The Forth dictionaryL!NĚ ÜĚ + &€B€°˜€ € € ‚˙3.3 The Forth dictionary ăĚ ěÎ - (€Ç€˜R‘€€‚‚˙Forth words are organized into a structure called the dictionary. While the form of this structure is not specified by the Standard, it can be described as consisting of three logical parts: a name space, a code space, and a data space. The logical separation of these parts does not require their physical separation.A program shall not fetch from or store into locations outside data space. An ambiguous condition exists if a program addresses name space or code space.CÜĚ /Ď 1˙˙˙˙˙˙˙˙Ę/Ď iĎ R 3.3.1 Name space:ěÎ iĎ % €*€˜˜€‚˙3.3.1 Name space?/Ď ¨Ď ' €0€Ȁ€‚˙3.3.1 Name space yRiĎ - ' €¤€˜R‘€€‚˙The relationship between name space and data spa¨Ď - ěÎ ce is implementation dependent.E¨Ď r * $€6€Ȁ€ €‚˙3.3.1.1 Word lists äť- V ) €w€˜R‘€€‚˙The structure of a word list is implementation dependent. When duplicate names exist in a word list, the latest-defined duplicate shall be the one found during a search for the name.K!r Ą * $€B€Ȁ€ €‚˙3.3.1.2 Definition names ą…V R , &€ €˜R‘€€‚‚‚˙Definition names shall contain {1..31} characters. A system may allow or prohibit the creation of definition names containing non-standard characters.Programs that use lower case for standard definition names or depend on the case-sensitivity properties of a system have an environmental dependency. A program shall not create definition names containing non-graphic characters. CĄ • 1í˙˙˙˙˙˙˙˙˕ Ď ‹ 3.3.2 Code space:R Ď % €*€˜˜€‚˙3.3.2 Code spaceC•  * $€2€Ȁ€€‚˙3.3.2 Code space yRĎ ‹ ' €¤€˜R‘€€‚˙The relationship between code space and data space is implementation dependent.C Î 1g#˙˙˙˙˙˙˙˙ĚÎ  %ˆ 3.3.3 Data space:‹  % €*€˜˜€‚˙3.3.3 Data spaceCÎ K * $€2€Ȁ€€‚˙3.3.3 Data space ´ˆ ˙ , &€€˜R‘€€‚˙Data space is the only logical area of the dictionary for which standard words are provided to allocate and access regions of memory. These regions are: contiguous regions, variables, text-literal regions, input buffers, and other transient regions, each of which is described in the following sections. A program may read from or write into these regions unless otherwise specified.L"K K * $€D€Ȁ€ €‚˙3.3.3.1 Address alignment m˙ T œ Ű€˜R‘€€€€€€ăG\W €ăžłÝ󀉀€€€€€€€€€€€€€€€€€€€€€€€€‚˙Most addresses used in ANS Forth are aligned addresses (indicated by a-addr) or character-aligned (indicated by c-addr). ALIGNED, CHAR+, and arithmetic operations can alter the alignment state of an address on the stack. CHAR+ applied to an aligned address returns a character-aligned address that can only be used to access characters. Applying CHAR+ to a character-aligned address produces the succeeding character-aligned address. Adding or subtracting an arbitrary number to an address can produce an unaligned address that shall not be used to fetch or store anything. The only way to find the next aligned address is with ALIGNED. An ambiguous condition exists when @, !, , (comma), +!, 2@, or 2! is used with an address that is not aligned, or when C@, C!, or C, is used with an address that is not character-aligned.`K ´ [ „€ €˜R‘€€€€ă6˛Ý󀉀€€ă™ňYš€‰€‚ăF\W €‚˙The definitions of 6.1.1000 CREATE and 6.1.2410 VARIABLE require that the definitions created by them return aligned addresses.After definitions are compiled or the word ALIGN is executed the data-space pointer is guaranteed to be aligned.M#T  * $€F€Ȁ€ €‚˙3.3.3.2 Contiguous regions `é´ m@ w ź€Ó€˜R‘€€ăH\W €ăÔŤJż€‰€ăšłÝ󀉀ăF\W €ă_Ž­€‰€ăH\W €‚˙A system guarantees that a region of data space allocated using ALLOT, , (comma), C, (c-comma), and ALIGN shall be contiguous with the last region allocated with one of the above words, unless the restrictions in the following paragraphs apply. The data-space pointer HERE always identifies the beginning of the next data-space region to be allocated. As successive allocations are made, the data-space pointer increases. A program may perform address arithmetic within contiguously allocated regions. The last region of data space allocated using the above operators may be released by allocating a corresponding neg m@ ‹ atively-sized region using ALLOT, subject to the restrictions of the following paragraphs.2ö ŸB < F€í€˜R‘€ă6˛Ý󀉀€€‚‚˙CREATE establishes the beginning of a contiguous region of data space, whose starting address is returned by the CREATEd definition. This region is terminated by compiling the next definition.Since an implementation is free to allocate data space for use by code, the above operators need not produce contiguous regions of data space if definitions are added to or removed from the dictionary between allocations. An ambiguous condition exists if deallocated memory contains definitions.Dm@ ăB * $€4€Ȁ€ €‚˙3.3.3.3 Variables ՔŸB ¸C A P€)€˜R‘€€ăÜŤJż€‰€ăH\W €‚˙The region allocated for a variable may be non-contiguous with regions subsequently allocated with , (comma) or ALLOT. For example, in:CăB űC ' €8€ŒRـ€‚˙VARIABLE X 1 CELLS ALLOTܛ¸C ×D A P€7€˜R‘€€€€€€‚ăno€€‰€‚˙the region X and the region ALLOTted could be non-contiguous.Some system-provided variables, such as STATE, are restricted to read-only access.O%űC &E * $€J€Ȁ€ €‚˙3.3.3.4 Text-literal regions §X×D ÍF O l€ą€˜R‘€€ăio€€‰€ă8˛Ý󀉀‚€€€€‚˙The text-literal regions, specified by strings compiled with S" and C", may be read-only. A program shall not store into the text-literal regions created by S" and C" nor into any read-only system variable or read-only transient regions. An ambiguous condition exists when a program attempts to store into read-only regions.D&E G ' €:€Ȁ€ ‚˙3.3.3.5 Input buffers )ŮÍF :I P n€ł€˜R‘€€ăňŠn€‰€ă1 d€‰€ăko€€‰€‚˙The address, length, and content of the input buffer may be transient. A program shall not write into the input buffer. In the absence of any optional word sets providing alternative input sources, the input buffer is either the terminal-input buffer, used by QUIT to hold one line from the user input device, or a buffer specified by EVALUATE. In all cases, SOURCE returns the beginning address and length in characters of the current input buffer. `G šL Z ‚€ €˜R‘€€‚€€ă9ěĆe€‰€‚€€€€€€€€‚˙The minimum size of the terminal-input buffer shall be 80 characters.The address and length returned by SOURCE, the string returned by PARSE, and directly computed input-buffer addresses are valid only until the text interpreter does I/O to refill the input buffer or the input source is changed. A program may modify the size of the parse area by changing the contents of >IN within the limits imposed by this Standard. For example, if the contents of >IN are saved before a parsing operation and restored afterwards, the text that was parsed will be available again for subsequent parsing operations. The extent of permissible repositioning using this method depends on the input source (see 7.3.3 Block buffer regions and 11.3.4 Input source).~G:I N 7 <€€˜R‘€€€€€€‚˙A program may directly examine the input buffer using its address and length as returned by SOURCE; the beginning of the parse area within the input buffer is indexed by the number in >IN. The values are valid for a limited time. An ambiguous condition exists if a program modifies the contents of the input buffer.R(šL jN * $€P€Ȁ€ €‚˙3.3.3.6 Other transient regions źN sO M h€y€˜R‘€€ă8ěĆe€‰€ăUŁ€‰€ăX­Jż€‰€‚˙The data space regions identified by PAD, WORD, and #> (the pictured numeric output string buffer) may be transient. Their addresses and contents may become invalid after:¸jjN 7€ N l€Ô€\ˆRـ:‚H€€ƒ‚€€ƒăŹJż€‰€ăÔ@T€‰€‚˙–a definition is created via a defining word;–definitionsO 7€ ‹ s are compiled with : or :NONAME;ť]sO ň€ ^ Œ€ş€\˜Rـ:‚H€€ƒăH\W €ăÜŤJż€‰€ăšłÝ󀉀ăF\W €‚˙–data space is allocated using ALLOT, , (comma), C, (c-comma), or ALIGN./{7€ !„ ´ 6÷€˜R‘€‚H€€€€€€€€€ă2ŹJż€‰€ăW­Jż€‰€ăho€€‰€ă`Ž­€‰€ăÔŤJż€‰€ă0ŹJż€‰€€€€€€€€€€€€€‚˙The previous contents of the regions identified by WORD and #> may be invalid after each use of these words. Further, the regions returned by WORD and #> may overlap in memory. Consequently, use of one of these words can corrupt a region returned earlier by a different word. The other words that construct pictured numeric output strings (<#, #, #S, and HOLD) may also modify the contents of these regions. Words that display numbers may be implemented using pictured numeric output words. Consequently, . (dot), .R, .S, ?, D., D.R, U., and U.R could also corrupt the regions.Křň€ l† S t€ń€˜R‘€‚H€ă8ěĆe€‰€€€€€€€€€‚˙The size of the scratch area whose address is returned by PAD shall be at least 84 characters. The contents of the region addressed by PAD are intended to be under the complete control of the user: no words defined in this Standard place anything in the region, although changing data-space allocations as described in 3.3.3.2 Contiguous regions may change the address returned by PAD. Non-standard words provided by an implementation may use PAD, but such use shall be documented.†Q!„ ň† 5 :€˘€˜R‘€‚H€ăUŁ€‰€‚˙The size of the region identified by WORD shall be at least 33 characters.3űl† %ˆ 8 >€÷€˜R‘€‚H€€€€€‚˙The size of the pictured numeric output string buffer shall be at least (2*n) + 2 characters, where n is the number of bits in a cell. Programs that consider it a fixed area with unchanging access parameters have an environmental dependency.Q ň† vˆ 11˙˙˙˙˙˙˙˙Ívˆ ‰ Ŕ 3.4 The Forth text interpreterH#%ˆ žˆ % €F€˜˜€‚˙3.4 The Forth text interpreterR'vˆ ‰ + &€N€°˜€ € € ‚˙3.4 The Forth text interpreter ˝Džˆ ͋ y Ŕ€‰€˜R‘€€€€ăňŠn€‰€‚€€€€€€€€‚€€ă1 d€‰€€ăňŠn€‰€‚˙Upon start-up, a system shall be able to interpret, as described by 6.1.2050 QUIT, Forth source code received interactively from a user input device.Such interactive systems usually furnish a Ťpromptť indicating that they have accepted a user request and acted on it. The implementation-defined Forth prompt should contain the word ŤOKť in some combination of upper or lower case.Text interpretation (see 6.1.1360 EVALUATE and 6.1.2050 QUIT) shall repeat the following steps until either the parse area is empty or an ambiguous condition exists:䣉 ąŒ A P€G€\ˆRـ:‚H€ƒ€€€€‚ƒ€€‚˙a)Skip leading spaces and parse a name (see 3.4.1);b)Search the dictionary name space (see 3.4.2). If a definition name matching the string is found:Ţ͋ ˍ < F€˝€\ˆR!:‚H€ƒ€€‚ƒ€€‚˙1)if interpreting, perform the interpretation semantics of the definition (see 3.4.3.2), and continue at a);2)if compiling, perform the compilation semantics of the definition (see 3.4.3.3), and continue at a).ťˆąŒ †Ž 3 4€€\ˆRـ:‚H€ƒ€€‚˙c)If a definition name matching the string is not found, attempt to convert the string to a number (see 3.4.1.3). If successful:Őˍ œ A P€Ť€\ˆR!:‚H€ƒ‚ƒ€€ăM=şB€‰€‚˙1)if interpreting, place the number on the data stack, and continue at a);2)if compiling, compile code that when executed will place the number on the stack (see 6.1.1780 LITERAL), and continue at a);tC†Ž Ŕ 1 2€†€\˜Rـ:‚H€ƒ€€‚˙d)If unsuccessful, an ambiguous condition exists œ Ŕ %ˆ (see 3.4.4).@œ \Ŕ 1 ˙˙˙˙˙˙˙˙Î\Ŕ “Ŕ ‚Í 3.4.1 Parsing7Ŕ “Ŕ % €$€˜˜€‚˙3.4.1 Parsing<\Ŕ ĎŔ ' €*€Ȁ€‚˙3.4.1 Parsing w7“Ŕ FĂ @ N€o€˜R‘€€‚€€€€€€‚˙Unless otherwise noted, the number of characters parsed may be from zero to the implementation-defined maximum length of a counted string.If the parse area is empty, i.e., when the number in >IN is equal to the length of the input buffer, or contains no characters other than delimiters, the selected string is empty. Otherwise, the selected string begins with the next character in the parse area, which is the character indexed by the contents of >IN. An ambiguous condition exists if the number in >IN is greater than the size of the input buffer.VĎŔ œĹ 9 @€;€˜R‘€€€€€€‚˙If delimiter characters are present in the parse area after the beginning of the selected string, the string continues up to and including the character just before the first such delimiter, and the number in >IN is changed to index immediately past that delimiter, thus removing the parsed characters and the delimiter from the parse area. Otherwise, the string continues up to and including the last character in the parse area, and the number in >IN is changed to the length of the input buffer, thus emptying the parse area.WFĂ óĆ < F€7€˜R‘€€€€€€€€‚˙Parsing may change the contents of >IN, but shall not affect the contents of the input buffer. Specifically, if the value in >IN is saved before starting the parse, resetting >IN to that value immediately after the parse shall restore the parse area without loss of data.AœĹ 4Ç ' €4€Ȁ€ ‚˙3.4.1.1 Delimiters žZóĆ ŇČ D V€ľ€˜R‘€€ăˆë€‰€€€€€‚‚˙If the delimiter is the space character, hex 20 (BL), control characters may be treated as delimiters. The set of conditions, if any, under which a Ťspaceť delimiter matches control characters is implementation defined.To skip leading delimiters is to pass by zero or more contiguous delimiters in the parse area before parsing. =4Ç É ' €,€Ȁ€ ‚˙3.4.1.2 Syntax TŇČ cË L f€€˜R‘€€€€€€€€€€€€‚‚˙Forth has a simple, operator-ordered syntax. The phrase A B C returns values as if A were executed first, then B and finally C. Words that cause deviations from this linear flow of control are called control-flow words. Combinations of control-flow words whose stack effects are compatible form control-flow structures. Examples of typical use are given for each control-flow word in Annex A.Forth syntax is extensible; for example, new control-flow words can be defined in terms of existing ones.oHÉ ŇË ' €€˜R‘€€‚˙This Standard does not require a syntax or program-construct checker._8cË 1Ě ' €p€Ȁ€ ‚˙3.4.1.3 Text interpreter input number conversion QŇË ‚Í B R€€˜R‘€€€€€€ăţ‡ë€‰€‚˙When converting input numbers, the text interpreter shall recognize both positive and negative numbers, with a negative number represented by a single minus sign, the character Ť-ť, preceding the digits. The value in BASE is the radix for number conversion.Q 1Ě ÓÍ 1'˙˙˙˙˙˙˙˙ĎÓÍ Î Ú 3.4.2 Finding definition namesH#‚Í Î % €F€˜˜€‚˙3.4.2 Finding definition namesM&ÓÍ hÎ ' €L€Ȁ€‚˙3.4.2 Finding definition names ßÎ  , &€ż€˜R‘€€‚˙A string matches a definition name if each character in the string matches the corresponding character in the string used as the definition name when the definition was created. The case sensitivity (whether or not the upper-case letters match the lower-case letters) is implementation defined. A system may be either case sensitive, treating upper- and lowehÎ  ‚Í r-case letters as different and not matching, or case insensitive, ignoring differences in case while searching.[0hÎ Ú + $€a€˜R‘€€‚‚˙The matching of upper- and lower-case letters with alphabetic characters in character set extensions such as accented international characters is implementation defined.A system shall be capable of finding the definition names defined by this Standard when they are spelled with upper-case letters.B  1œ ˙˙˙˙˙˙˙˙Đ U Ŕ 3.4.3 Semantics9Ú U % €(€˜˜€‚˙3.4.3 SemanticsB — * $€0€Ȁ€€‚˙3.4.3 Semantics °dU G L f€É€˜R‘€€€€‚€€€€€€€€‚˙The semantics of a Forth definition are implemented by machine code or a sequence of execution tokens or other representations. They are largely specified by the stack notation in the glossary entries, which shows what values shall be consumed and produced. The prose in each glossary entry further specifies the definition’s behavior.Each Forth definition may have several behaviors, described in the following sections. The terms Ťinitiation semanticsť and Ťrun-time semanticsť refer to definition fragments, and have meaning only within the individual glossary entries where they appear.N$— • * $€H€Ȁ€ €‚˙3.4.3.1 Execution semantics ?G Ô ? L€€˜R‘€€€€€€‚€€‚˙The execution semantics of each Forth definition are specified in an ŤExecution:ť section of its glossary entry. When a definition has only one specified behavior, the label is omitted.Execution may occur implicitly, when the definition into which it has been compiled is executed, or explicitly, when its execution token is passed to EXECUTE. The execution semantics of a syntactically correct definition under conditions other than those specified in this Standard are implementation dependent.ťƒ•  8 >€€˜R‘€€€€€€€‚˙Glossary entries for defining words include the execution semantics for the new definition in a Ťname Execution:ť section.S)Ô â * $€R€Ȁ€ €‚˙3.4.3.2 Interpretation semantics q1 S @ N€c€˜R‘€€€€€€‚‚€€‚˙Unless otherwise specified in an ŤInterpretation:ť section of the glossary entry, the interpretation semantics of a Forth definition are its execution semantics.A system shall be capable of executing, in interpretation state, all of the definitions from the Core word set and any definitions included from the optional word sets or word set extensions whose interpretation semantics are defined by this Standard.A system shall be capable of executing, in interpretation state, any new definitions created in accordance with 3. Usage requirements.P&â Ł * $€L€Ȁ€ €‚˙3.4.3.3 Compilation semantics çS Ŕ 6 :€Ď€˜R‘€€€€€€‚˙Unless otherwise specified in a ŤCompilation:ť section of the glossary entry, the compilation semantics of a Forth definition shall be to append its execution semantics to the execution semantics of the current definition.c2Ł # 1.˙˙˙˙˙˙˙˙Ń# } a@ 3.4.4 Possible actions on an ambiguous conditionZ5Ŕ } % €j€˜˜€‚˙3.4.4 Possible actions on an ambiguous conditionc9# ŕ * $€r€Ȁ€€‚˙3.4.4 Possible actions on an ambiguous condition …^} e ' €ź€˜R‘€€‚˙When an ambiguous condition exists, a system may take one or more of the following actions: ťŕ o O l€w€\ˆRـ:‚H€€ƒ‚€€ƒ‚€€ƒ‚€€ƒ‚€€ƒ‚˙–ignore and continue;–display a message;–execute a particular word;–set interpretation state and begin text interpretation;–take other implementation-defined actions;Z,e É . ,€X€\˜Rـ:‚H€€ƒ‚˙–take implementation-dependent actions.Œco a@ ) "€Ć€˜R‘€‚H€‚˙The response É a@ Ŕ to a particular ambiguous condition need not be the same under all circumstances. DÉ Ľ@ 1˙˙˙˙˙˙˙˙ŇĽ@ ŕ@ ÁC 3.4.5 Compilation;a@ ŕ@ % €,€˜˜€‚˙3.4.5 Compilation@Ľ@ A ' €2€Ȁ€‚˙3.4.5 Compilation {ŕ@ ›C ] ˆ€=€˜R‘€€‚ăÔ@T€‰€ă,ŹJż€‰€ă.ŹJż€‰€ăÔ@T€‰€‚˙A program shall not attempt to nest compilation of definitions.During the compilation of the current definition, a program shall not execute any defining word, :NONAME, or any definition that allocates dictionary data space. The compilation of the current definition may be suspended using [ (left-bracket) and resumed using ] (right-bracket). While the compilation of the current definition is suspended, a program shall not execute any defining word, :NONAME, or any definition that allocates dictionary data space.& A ÁC # €€€‚˙1›C ňC 1ƒ˙˙˙˙˙˙˙˙ÓňC ˙˙˙˙DD R.ÁC DD $ €\€˜˜€˙nononoAMS94 Chapter 1031Chap10yesyes21/07/01BňC †D 13˙˙˙˙˙˙˙˙ԆD ĂD ĹG Table of Contents=DD ĂD ( €*€˜˜€€‚˙Table of ContentsX+†D E - *€V€€‚ăX›?€‰‚˙10. The optional Facility word setČĂD 2F O l€‘€‘€ăgďÉ<€‰‚ăD;‰‚㧡E;‰‚ăä1;‰‚ăÉ•;‰‚ăša<‰‚˙10.1 Introduction10.2 Additional terms and notation10.3 Additional usage requirements10.4 Additional documentation requirements10.5 Compliance and labeling10.6 GlossaryGE yF + &€8€!ăBúL<€‰‚˙10.6.1 Facility wordsQ2F ĘF 9 B€0€ąă˛ĺb€‰‚ăUSľ‰‚ăü-Ôŕ‰‚˙AT-XYKEY?PAGEQ&yF G + &€L€!ăě#7<€‰‚˙10.6.2 Facility extension words„6ĘF ŸG N l€l€ąăóLq€€‰‚ăMށ‰‚ăôLq€‰‚ăőLq€‰‚ăËŞŠĆ‰‚ăżN‰‚˙EKEYEKEY>CHAREKEY?EMIT?MSTIME&DATE&G ĹG # €€€‚˙1ŸG öG 1É˙˙˙˙˙˙˙˙Ő˙˙˙˙öG ŽL V+ĹG LJ + $€W€€€ €‚‚˙Help file produced by HELLLP! v3.1b , a product of Guy Software, on 21/07/01 for Unregistered User.The above table of contents will be automatically completed and will also provide an excellent cross-reference for context strings and topic titles. You may leave it as your main table of contents for your help file, or you may create your own and cause it to be displayed instead by using the I button on the toolbar. This page will not be displayed as a topic. It is given a context string of _._ , but this is not presented for jump selection.ňöG fL ( €ĺ€€‚€‚˙HINT: If you do not wish some of your topics to appear in the table of contents as displayed to your users (you may want them ONLY as PopUps), move the lines with their titles and contexts to below this point. If you do this remember to move the whole line, not part. As an alternative, you may wish to set up your own table of contents, see Help under The Structure of a Help File. Do not delete any codes in the area above the Table of Contents title, they are used internally by HELLLP!(LJ ŽL $ €€€‚‚˙U$fL ăL 1w˙˙˙˙˙˙˙˙ÖăL /M 'ƒ 10. The optional Facility word setL'ŽL /M % €N€˜˜€‚˙10. The optional Facility word setQ*ăL €M ' €T€°€ € ‚˙10. The optional Facility word set ;/M ťM % €,€˜˜€‚˙10.1 IntroductionA€M üM ( €2€°˜€ € ‚˙10.1 Introduction L'ťM HN % €N€˜˜€‚˙10.2 Additional terms and notationV+üM žN + &€V€°˜€ € € ‚˙10.2 Additional terms and notation /HN ÍN ' €€˜R‘€€‚˙None.L'žN O % €N€˜˜€‚˙10.3 Additional usage requirementsV+ÍN oO + &€V€°˜€ € € ‚˙10.3 Additional usage requirements IO ¸O * $€>€Ȁ€€‚˙10.3.1 Character types ғoO –€ ? L€'€˜R‘€€€ăóLq€€‰€‚€€‚˙Programs¸O –€ ŽL that use more than seven bits of a character by 10.6.2.1305 EKEY have an environmental dependency.See: 3.1.2 Character types.O%¸O ĺ€ * $€J€Ȁ€€‚˙10.3.2 Environmental queries wI–€ \ . ,€’€˜R‘€€‚€€‚˙Append table 10.1 to table 3.5. See: 3.2.6 Environmental queries.d1ĺ€ Ŕ 3 6€b€:°RČȀ!€$€!€€!‚˙Table 10.1 – Environmental query strings e+\ %‚ : D€V€zŒRŠƒÝ€3}B†Ń‚=ƒŠ€ƒƒƒ‚˙StringValue data typeConstant?MeaningĐrŔ ő‚ ^ Œ€ä€xRŠƒÝ€3}J†Ń‚=ƒŠăBúL<€‰€ƒ€€ƒƒ‚ăě#7<€‰€ƒ€€ƒƒ‚˙FACILITYflagnofacility word set presentFACILITY-EXTflagnofacility extensions word set present2%‚ 'ƒ / .€€8RČȆт=ƒŠ€‚˙],ő‚ „ƒ 1G˙˙˙˙˙˙˙˙ׄƒ 6„ L‰ 10.4 Additional documentation requirementsT/'ƒ ؃ % €^€˜˜€‚˙10.4 Additional documentation requirements^3„ƒ 6„ + &€f€°˜€ € € ‚˙10.4 Additional documentation requirements ‡S؃ ˝„ 4 8€Ś€Ȁ€€‚€€ €‚˙10.4.1 System documentation 10.4.1.1 Implementation-defined options ¤_6„ a… E Z€ž€\ˆRـ:‚H€€ƒ€ăóLq€€‰€‚€€ƒ‚˙–encoding of keyboard events (10.6.2.1305 EKEY);–duration of a system clock tick;ŠJ˝„ ë… @ P€”€\˜Rـ:‚H€€ƒ€€ăËŞŠĆ€‰€‚˙–repeatability to be expected from execution of 10.6.2.1905 MS.R&a… =† , (€L€ȂH€€ €‚˙10.4.1.2 Ambiguous conditions ‘Që… Î† @ P€˘€\˜Rـ:‚H€€ƒ€€ă˛ĺb€‰€‚˙–10.6.1.0742 AT-XY operation can't be performed on user output device.X,=† &‡ , (€X€ȂH€€ €‚˙10.4.1.3 Other system documentation O!Ά u‡ . ,€B€\˜Rـ:‚H€€ƒ‚˙–no additional requirements.Q%&‡ Ƈ , (€J€ȂH€€€‚˙10.4.2 Program documentation T+u‡ ˆ ) "€V€ȂH€€ ‚˙10.4.2.1 Environmental dependencies ŠJƇ ¤ˆ @ P€”€\˜Rـ:‚H€€ƒ€€ăóLq€€‰€‚˙–using more than seven bits of a character in 10.6.2.1305 EKEY.Y-ˆ ýˆ , (€Z€ȂH€€ €‚˙10.4.2.2 Other program documentation O!¤ˆ L‰ . ,€B€\˜Rـ:‚H€€ƒ‚˙–no additional requirements.Oýˆ ›‰ 1Ô˙˙˙˙˙˙˙˙؛‰ 1Š Ŕ 10.5 Compliance and labelingF!L‰ በ% €B€˜˜€‚˙10.5 Compliance and labelingP%›‰ 1Š + &€J€°˜€ € € ‚˙10.5 Compliance and labeling K!በ|Š * $€B€Ȁ€€‚˙10.5.1 ANS Forth systems k1Š çŒ ] ˆ€€˜R‘€€€€€€‚€€€€€€€€‚€€€€‚˙The phrase ŤProviding the Facility word setť shall be appended to the label of any Standard System that provides all of the Facility word set.The phrase ŤProviding name(s) from the Facility Extensions word setť shall be appended to the label of any Standard System that provides portions of the Facility Extensions word set.The phrase ŤProviding the Facility Extensions word setť shall be appended to the label of any Standard System that provides all of the Facility and Facility Extensions word sets.L"|Š 3 * $€D€Ȁ€€‚˙10.5.2 ANS Forth programs ĄBçŒ Ŕ _ Œ€…€˜R‘€€€€€€‚€€€€€€€€‚€€€€‚˙The phrase ŤRequiring the Facility word setť shall be appended to the label of Standard Programs that require the system to provide the Facility word set.The phrase ŤRequiring name(s) from the Facility Extensions word setť shall be appended to the label of Standard Programs that require the system to provide portions of the Facility Extensions word set.The phrase ŤRequiring the Facility Extensions word setť shall be appended to the label of Standard Programs that require the system to provide all of the Facility and Facility Extensions word sets.3 Ŕ L‰ @3 LŔ 1y˙˙˙˙˙˙˙˙ŮLŔ Á KÉ 10.6 Glossary7 Ŕ ƒŔ % €$€˜˜€‚˙10.6 GlossaryALŔ ÄŔ + &€,€°˜€ € € ‚˙10.6 Glossary ?ƒŔ Á % €4€˜˜€‚˙10.6.1 Facility wordsHÄŔ KÁ * $€<€Ȁ€€‚˙10.6.1 Facility words -Á xÁ % €€˜˜€‚˙AT-XYk0KÁ ăÁ ; F€`€‘€‚H€€€ƒ€€€€ƒ‚˙10.6.1.0742 AT-XY Ťat-x-yťFACILITYQxÁ 4 < H€*€Œ˜RQ‚H€€€€€€€‚˙( u1 u2 -- )‰IăÁ ˝Ă @ N€“€Œ˜RQ‚H€€€€€€€‚˙Perform implementation-dependent steps so that the next character displayed will appear in column u1, row u2 of the user output device, the upper left corner of which is column zero, row zero. An ambiguous condition exists if the operation cannot be performed on the user output device with the specified parameters.)4 ćĂ & €€R‚H€‚˙.˝Ă Ä ' €€ ˜˜‚H€‚˙KEY?p5ćĂ „Ä ; F€j€‘€‚H€€€ƒ€€€€ƒ‚˙10.6.1.1755 KEY? Ťkey-questionťFACILITY@Ä ÄÄ 0 0€ €Œ˜RQ‚H€€€‚˙( -- flag )]„Ä !Ć F Z€/€Œ˜RQ‚H€€€€€ă÷9€‰€‚˙If a character is available, return true. Otherwise, return false. If non-character keyboard events are available before the first valid character, they are discarded and are subsequently unavailable. The character shall be returned by the next execution of KEY. ´ÄÄ +Ç V z€i€Œ˜RQ‚H€€€€€€€€€ăóLq€€‰€€€‚˙After KEY? returns with a value of true, subsequent executions of KEY? prior to the execution of KEY or EKEY also return true, without discarding keyboard events.)!Ć TÇ & €€R‚H€‚˙.+Ç ‚Ç ' €€ ˜˜‚H€‚˙PAGER#TÇ ÔÇ / .€F€‘€‚H€€€ƒƒ‚˙10.6.1.2005 PAGE FACILITY3 ‚Ç Č * $€€Œ˜RQ‚H€‚˙( -- )âÔÇ "É 9 @€Ĺ€Œ˜RQ‚H€€€€€‚˙Move to another page for output. Actual function depends on the output device. On a terminal, PAGE clears the screen and resets the cursor position to the upper left corner. On a printer, PAGE performs a form feed.)Č KÉ & €€R‚H€‚˙R!"É É 1L˙˙˙˙˙˙˙˙ÚÉ ćÉ Ě 10.6.2 Facility extension wordsI$KÉ ćÉ % €H€˜˜€‚˙10.6.2 Facility extension wordsR(É 8Ę * $€P€Ȁ€€‚˙10.6.2 Facility extension words ,ćÉ dĘ % €€˜˜€‚˙EKEYm28Ę ŃĘ ; F€d€‘€‚H€€€ƒ€€€€ƒ‚˙10.6.2.1305 EKEY Ťe-keyťFACILITY EXT= dĘ Ë 0 0€€Œ˜RQ‚H€€€‚˙( -- u )_ŃĘ žË 1 2€ž€Œ˜RQ‚H€€€‚˙Receive one keyboard event u. The encoding of keyboard events is implementation defined.„3Ë "Ě Q r€f€^Œ˜RQł~‚9€ƒ€ƒ€ăôLq€€‰€€ă÷9€‰€‚˙See:10.6.1.1755 KEY?, 6.1.1750 KEY.+žË MĚ ( €€R‚9€‚˙5 "Ě ‚Ě ) "€€ ˜˜‚9€‚˙EKEY>CHARz?MĚ üĚ ; F€~€‘€‚H€€€ƒ€€€€ƒ‚˙10.6.2.1306 EKEY>CHAR Ťe-key-to-charťFACILITY EXTq)‚Ě mÍ H `€R€Œ˜RQ‚H€€€€€€€€€€€‚˙( u -- u false | char true )îŞüĚ [Î D V€U€Œ˜RQ‚H€€€€€€€€€‚˙If the keyboard event u corresponds to a character in the implementation-defined character set, return that character and true. Otherwise return u and false.)mÍ „Î & €€R‚H€‚˙/[Î łÎ ' €€ ˜˜‚H€‚˙EKEY?w<„Î *Ď ; F€x€‘€‚H€€€ƒ€€€€ƒ‚˙10.6.2.1307 EKEY? Ťe-key-questionťFACILITY EXT@łÎ jĎ 0 0€ €Œ˜RQ‚H€€€‚˙( -- flag )ˍ*Ď A > J€€Œ˜RQ‚H€€€€€€€‚˙If a keyboard event is available, return true. Otherwise return false. The event jĎ A KÉ shall be returned by the next execution of EKEY."şjĎ c h ž€u€Œ˜RQ‚H€€€€€€€ă÷9€‰€ăUSľ€‰€ăóLq€€‰€€€‚˙After EKEY? returns with a value of true, subsequent executions of EKEY? prior to the execution of KEY, KEY?or EKEY also return true, referring to the same event.)A Œ & €€R‚H€‚˙/c ť ' €€ ˜˜‚H€‚˙EMIT?v;Œ 1 ; F€v€‘€‚H€€€ƒ€€€€ƒ‚˙10.6.2.1325 EMIT? Ťemit-questionťFACILITY EXT@ť q 0 0€ €Œ˜RQ‚H€€€‚˙( -- flag )3ß1 ¤ T v€ż€Œ˜RQ‚H€€€€ă/ d€‰€€€€€€€‚˙flag is true if the user output device is ready to accept data and the execution of EMIT in place of EMIT? would not have suffered an indefinite delay. If the device status is indeterminate, flag is true.)q Í & €€R‚H€‚˙,¤ ů ' € € ˜˜‚H€‚˙MST%Í M / .€J€‘€‚H€€€ƒƒ‚˙10.6.2.1905 MS FACILITY EXT= ů Š 0 0€€Œ˜RQ‚H€€€‚˙( u -- )R"M Ü 0 0€D€Œ˜RQ‚H€€€‚˙Wait at least u milliseconds.ߊ ô 9 @€ż€^Œ˜RQł~‚9€ƒ€€ƒ‚˙Note:The actual length and variability of the time period depends upon the implementation-defined resolution of the system clock and upon other system and computer characteristics beyond the scope of this Standard.+Ü  ( €€R‚9€‚˙5 ô T ) "€€ ˜˜‚9€‚˙TIME&DATEz? Î ; F€~€‘€‚H€€€ƒ€€€€ƒ‚˙10.6.2.2292 TIME&DATE Ťtime-and-dateťFACILITY EXT“3T a ` €f€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙( -- +n1 +n2 +n3 +n4 +n5 +n6 )CŕÎ ¤ c ”€Á€Œ˜RQ‚H€€€€€€€€€€€€€€€€€€€‚˙Return the current time and date. +n1 is the second {0...59}, +n2 is the minute {0...59}, +n3 is the hour {0...23}, +n4 is the day {1...31} +n5 is the month {1...12}, and +n6 is the year (e.g., 1991).(a Ě % €€‚H€‚˙1¤ ý 1–˙˙˙˙˙˙˙˙Ű˙˙˙˙ý b e@Ě b % €€˜˜€*˙If this screen is the first to display you are probably not using the latest version of the Microsoft HCW help file compiler. You need at least version 4.03 which may be downloaded via a link on http://www.guysoftware.com/helllp.html in order to handle files produced by Microsoft Word version 8 (Office 97) or later.Eý § 14˙˙˙˙˙˙˙˙Ü˙˙˙˙§ – Unregistered Message(b Ď % €€˜˜€+‚˙p§ ? S#v€<oť .€€€,†"€€-‚˙€ €€.€-‚˙˙˙Unregistered Message1áĎ p P n€Ă€€-‚€,€/€,‚‚€/€,€/€,€/€,‚‚€/€,âGöŁ(‰‚˙This Help file was produced by an unregistered demonstration copy of the HELLLP! file authoring system.HELLLP! is a user-friendly system to aid in the production of Windows help files. It requires Microsoft Word for Windows version 2.0 or higher. Users of Word versions up to Word 7/Office 95 need version 2.7 of HELLLP! users of Word version 8/Office 97 or later need version 3 of HELLLP! HELLLP! is available as shareware from many sources and is always available from http://www.guysoftware.com/helllp.html at which site the author and distributor may also be contacted. Registration and payment, which will remove this screen from files produced by the system may also be accomplished by links from this site.&? – # €€€/‚˙1p Ç 1×˙˙˙˙˙˙˙˙Ý˙˙˙˙Ç łB <–  ' €*€°€0€‚˙ About Shareware:řÇ .A ' €ń€€‚‚‚‚˙Shareware is copyrighted software that is distributed by authors through bulletin boards, on-line services and disk vendors.Shareware allows you to try the software for a reasonable limited period. If you deci .A – de not to continue using it, you throw it away and forget about it. You only pay for it if you continue to use it. Shareware is a distribution method, not a type of software. You benefit because you get to use the software to determine whether it meets your needs, before you pay for it. …_ łB & €ż€€‚‚‚˙The shareware system and the continued availability of quality shareware products depend on your willingness to register and pay for the shareware you use. It's the registration fees you pay which allow authors to support and continue to develop our products. Please show your support for shareware by registering those programs you actually use.1.A ˙˙˙˙1˙˙˙˙˙˙˙˙Ţ˙˙˙˙˙˙˙˙˙˙˙˙l c :1HTimes New RomanArialCourier NewSymbolTimesHelveticaCourierGenevaTms RmnHelvMS SerifMS Sans SerifNew YorkSystemWingdingsTimes GlasTahomaMT ExtraMS LineDrawAlgerianArial Rounded MT BoldBookman Old StyleBraggadocioBritannic BoldBrush Script MTCentury GothicColonna MTDesdemonaFootlight MT LightImpactKino MTWide LatinMatura MT Script CapitalsPlaybillAlbertus Extra BoldAlbertus MediumAntique OliveCG TimesCoronetLetter GothicUniversUnivers CondensedGaramondMarigoldClarendon CondensedCG OmegaLinePrinterModernScriptRomanMS DialogArial NarrowSmall FontsTimes New Roman CETimes New Roman CyrTimes New Roman GreekTimes New Roman TurTimes New Roman Baltic€8€€€€€€€€((99€3939€€393˙˙˙˙˙˙ „{š1É´ À1‚т….€Ԁ( M A‚ńƒ:‚ú… T…’…K† §‡ o [ƒV…C Äm@Ţąœ.ŐĐŽ€ڃŔ…€ W†€ i:ˆ‹ˆşˆ‰?I€(€+…ŔňÖł đp€ô€H„ Ş‚ Ľ  ‚ …¤E‰• j _… • €Ŕ‡á‰|ü€ˇŠ0Î €0†6‡Yşx­‚O_‚`€ނuƒ;…˘…ρą†?ƃ7x~P`…Ô‰†Yˇ‚2ƒŞ…†ś†:Šw…s‡R†€‚˝ÁÂA…oˆë'Ԁ{2 SFP€4g‚ż„…K†Ş ů:   D€   Ą‚ ‚ é‚ ‰„ ň<† c„ׄ€ ř L„"rr € ‘ ; / ú›‚ €łŽ„ … r† đ Ŕ‚‰ … ; ŠƒŇ  }„‚  5ŠŇýŠ°‹‘} Œ…-h†# ƒ Y… łˇ… Ň ż c Î }Ś € $?‚ Dž /&;)F24˙˙á˙˙'-!# #>#s#tib(* */$*/mod(,,.0."4.(8.r</@/modD:H:nonameL?doP?dupT@X[\[']`[char]d[compile]h\l]p+t+!x+loop|<€<#„<>ˆ=Œ>>body”>in˜>numberœ>r 0<¤0<>¨0=Ź0>°1-´1+¸10. The Optional Facility Word Setź10.1 IntroductionŔ10.2 Additional Terms And NotationÄ10.3 Additional Usage RequirementsČ10.4 Additional Documentation RequirementsĚ10.5 Compliance And LabelingĐ10.6 GlossaryÔ10.6.1 Facility WordsŘ10.6.2 Facility Extension WordsÜ2!ŕ2*ä2/č2@ě2>rđ2dropô2dupř2overü2r@2r>2swap3. Usage Requirements 3.1 Data Types3.1.1 Data-type Relationships3.1.2 Character Types3.1.3 Single-cell Types3.1.4 Cell-pair Types 3.1.5 System Types$3.2 The Implementation Environment(3.2.1 Numbers,3.2.2 Arithmetic03.2.3 Stacks43.2.4 Operator Terminal83.2.5 Mass Storage<3.2.6 Environmental Queries@3.3 The Forth DictionaryD3.3.1 Name SpaceH3.3.2 Code SpaceL3.3.3 Data SpaceP3.4 The Forth Text InterpreterT3.4.1 ParsingX3.4.2 Finding Definition Names\3.4.3 Semantics`3.4.4 Possible Actions On An Ambiguous Conditiond3.4.5 CompilationhAbortlAbort"pAbstAcceptxAgain|Align€Aligned„AllotˆAndŒAt-xyBase”Begin˜BlœC! C"¤C,¨C@ŹCase°Cell+´Cells¸CharźChar+ŔCharsÄCompile,ČConstantĚConvertĐCountÔCrŘCreateÜDecimalŕDepthäDočDoes>ěDropđDupôEkeyřŢb˙˙Ekey?üEkey>charElseEmitEmit? EndcaseEndofEnvironment?EraseEvaluate Exit$Expect(False,Fill0Find4Fm/mod8Here<Hex@HoldDIHIfLImmediatePInvertTJXKey\Key?`LeavedLiteralhLooplLshiftpM*tMarkerxMax|Min€Mod„MoveˆMsŒNegateNip”Of˜OrœOver Pad¤Page¨ParseŹPick°Postpone´Query¸QuitźR@ŔR>ÄRecurseČRefillĚRepeatĐRestore-inputÔRollŘRotÜRshiftŕS"äS>dčSave-inputěSignđSm/remôSourceřSource-idüSpaceSpacesSpanState SwapTable 3.1 - Data TypesTable 3.2 - Standard Graphic CharactersTable 3.3 - Floored Division ExampleTable 3.4 - Symmetric Division Example Table 3.5 - Environmental Query Strings$Then(Tib,Time&date0To4True8Tuck<Type@U.DU.rHU<LU>PUm*TUm/modXUnloop\UNREGISTERED`UntildUnusedhValuelVariablepWhiletWithinxWord|Xor€3.3 The Forth DictionaryD3.3.1 Name SpaceH3.3.2 Code SpaceL3.3.3 Data SpaceP3.4 The Forth Text InterpreterT3.4.1 ParsingX3.4.2 Finding Definition Names\3.4.3 Semantics`3.4.4 Possible Actions On An Ambiguous Conditiond3.4.5 CompilationhAbortlAbort"pAbstAcceptxAgain|Align€Aligned„AllotˆAndŒAt-xyBase”Begin˜BlœC! C"¤C,¨C@ŹCase°Cell+´Cells¸CharźChar+ŔCharsÄCompile,ČConstantĚConvertĐCountÔCrŘCreateÜDecimalŕDepthäDočDoes>ěDropđDupôEkeyřňEkey?/&;)Lz˙˙ßČ˙˙ˇîTable of ContentsԂׂ1!É#´#>#S{'À(1‚*т*/…*/MOD+Ä+!m+LOOP,š-.€.Ԁ."A‚/ńƒ/MODŔ…0<W†0=i1+ 1-Ŕ2!ň2*Ö2/ł2@đ2DROPp€2DUPô€2OVERĽ2SWAP:‚:dž;@<Ţ<#œ=.>Ő>BODYĐ>INŽ€>NUMBERڃ>R…?DUP’…@0†ABORT6‡ABORT"YABSşACCEPT­ALIGN‚ALIGNEDOALLOT_‚ANDނBASEuƒBEGIN;…BL˘…C!ą†C,?C@7CELL+CELLSxCHAR~CHAR+PCHARSÔCONSTANTYCOUNTˇ‚CR2ƒCREATEŞ…DECIMAL†DEPTHś†DODOES>:DROPŠDUP€ELSE‚EMITA…ENVIRONMENT?ˆEVALUATEëEXIT{FILL2FIND FM/MODSHEREP€HOLD4Ig‚IFż„IMMEDIATE…INVERTK†JŞ KEY: LEAVE LITERAL LOOPD€ LSHIFT  M*‚ MAX‚ MINé‚ MOD‰„ MOVE<† NEGATE€ ORř OVERr POSTPONE QUIT; R>‘ R@/ RECURSE›‚ REPEATŽ„ ROT… RSHIFTr† S"đ S>D‰ SIGN… SM/REM; SOURCEŇ SPACE SPACES‚ STATE SWAP} THEN ƒ TYPEY… U.ˇ… U<X† UM*ż UM/MODc UNLOOP UNTILŚ VARIABLE€ WHILE?‚ WORDDž XORK† [§‡ [']o [CHAR]C ]í  #TIB( .(M .R€ 0<>€ 0> 2>RŞ‚ 2R>H„ 2R@ú… :NONAMEą<>T?DOxAGAINρC"ƃCASE`…COMPILE,‰†CONVERTÁENDCASEÂENDOFoERASE'EXPECTԀFALSEFHEXĄMARKERc„NIPׄOFLPAD"PARSErPICK€QUERYúREFILL€RESTORE-INPUTłROLLŔ‚SAVE-INPUTŠƒSOURCE-ID}„SPANŒ…TIBh†TOTRUE#TUCKłU.RŇU>}UNUSEDVALUE$WITHIN[ƒ[COMPILE]V…\X†„†Table of Contents÷3. Usage requirements 3.1 Data types ‚3.1.1 Data-type relationships …3.1.2 Character types¤3.1.3 Single-cell typesE‰3.1.4 Cell-pair types•3.1.5 System types 3.2 The implementation environmentj 3.2.1 Numbers_…3.2.2 Arithmetic 3.2.3 Stacks•3.2.4 Operator terminal 3.2.5 Mass storage°˙˙€3.2.6 Environmental queriesŔ‡3.3 The Forth dictionaryá‰3.3.1 Name space|3.3.2 Code spaceü3.3.3 Data space3.4 The Forth text interpreter€3.4.1 ParsingˇŠ3.4.2 Finding definition names03.4.3 SemanticsÎ 3.4.4 Possible actions on an ambiguous condition€3.4.5 CompilationP‚~‚Table of Contents„:ˆ10. The optional Facility word set?10.4 Additional documentation requirementsI10.5 Compliance and labeling€10.6 Glossary+…10.6.2 Facility extension wordsŽÎUnregistered MessageÓ_EPTHś†DODOES>:DROPŠDUP€ELSE‚EMITA…ENVIRONMENT?ˆEVALUATEëEXIT{FILL2FIND FM/MODSHEREP€HOLD4Ig‚IFż„IMMEDIATE…INVERTK†JŞ KEY: LEAVE LITERAL LOOPD€ LSHIFT  M*‚ MAX‚ MINé‚ MOD‰„ MOVE<† NEGATE€ ORř OVERr POSTPONE QUIT; R>‘ R@/ RECURSE›‚ REPEATŽ„ ROT… RSHIFTr† S"đ S>D‰ SIGN… SM/REM; SOURCEŇ SPACE SPACES‚ STATE SWAP} THEN ƒ TYPEY… U.ˇ… U<X† UM*ż UM/MODc UNLOOP UNTILŚ VARIABLE€ WHILE?‚ WORDDž XORK† [§‡ [']o [CHAR]C ]í  #TIB( .(M .R€ 0<>€ 0> 2>RŞ‚ 2R>H„ 2R@ú… :NONAMEą<>T?DOxAGAINρC"ƃCASE`…COMPILE,‰†CONVERTÁENDCASEÂENDOFoERASE'EXPECTԀFALSEFHEXĄMARKERc„NIPׄOFLPAD"PARSErPICK€QUERYúREFILL€RESTORE-INPUTłROLLŔ‚SAVE-INPUTŠƒSOURCE-ID}„SPANŒ…TIBh†TOTRUE#TUCKłU.RŇU>}UNUSEDVALUE$WITHIN[ƒ[COMPILE]V…\X†„†Table of Contents÷3. Usage requirements 3.1 Data types ‚3.1.1 Data-type relationships …3.1.2 Character types¤3.1.3 Single-cell typesE‰3.1.4 Cell-pair types•3.1.5 System types 3.2 The implementation environmentj 3.2.1 Numbers_…3.2.2 Arithmetic 3.2.3 Stacks•3.2.4 Operator terminal 3.2.5 Mass storageô€/&;)L4˙˙é°é˙˙˙˙ho€io€r† jo€‰ ko€; lo€Ň mo€ no€‚ oo€ po€}„óLq€w…ôLq€s‡őLq€˝?š}đ MށR†´o‚‚Ŕ‚ľo‚‚ŠƒíďW„… #›Óˆ} $›Óˆ ƒ %›Óˆ &›ÓˆŒ…'›Óˆh†(›Óˆ)›Óˆ#ㅌîŢƖ‘Y… ßƖ‘ˇ… ŕƖ‘ áƖ‘c âƖ‘ ăƖ‘łäƖ‘ŇĺƖ‘}îqٔż ™ňYšŚ šňYšTŁ€ UŁ?‚ VŁ$JŕŤÇ… ?ŒçŤ5ŠŇÂ諑eůéŤýŠÜžůŤŇÝžůŤ°‹'V‘Ż„†USľůÓŤJżšÔŤJż.€ŐŤJżÔ€ÖŤJżA‚׍JżŔ…ŘŤJżW†ŮŤJżiÚŤJż ŰŤJżŔÜŤJżţŤJżÖ˙ŤJżłŹJżđŹJżp€ŹJżô€ŹJżĽŹJż:‚ŹJżÇ†ŹJż@ŹJżň)ŹJżœ*ŹJż.+ŹJż’…,ŹJżK† -ŹJż§‡ .ŹJżC /ŹJż( 0ŹJżM 1ŹJż€ 2ŹJżŢTŹJżŞ‚ UŹJżH„ VŹJżąWŹJżV…]ŹJż€ V­Jż1W­JżÉX­Jż´Y­Jż{Z­JżĂ€[­Jż1‚\­JżŃ‚]­Jż^­JżÄŰ-’Á ËŞŠĆňü-Ôŕ„B\Wâ0†C\Wâ6‡D\WâYE\WâşF\Wâ­G\Wâ‚H\WâOI\Wâ_‚J\Wâx1Ë&ă_…“ ă€|-ŚăE‰5ŃŠă|ČŤă …ćűÝăüy2ßă z2ß㠂qšä€Ť4䷊|łĺ .öĚĺj ĐŚçĺá‰ć•K5ć€Ü%:ćÎ ŁËŃć ¤ËŃć0Ůć¤زíć•áçŔ‡€áç8…ç ›Sçý‡ëŐţ‡ëނ˙‡ëuƒˆë;…5˛Ýóˇ‚6˛Ýó2ƒ7˛Ýóo 8˛Ýóρ9˛Ýóƃ:˛Ýó`…;˛Ýó‰†<˛Ýó[ƒ>˛ÝóY¸łÝó˘…šłÝ󹆺łÝó?ťłÝó7źłÝó˝łÝóxžłÝó~żłÝóPŔłÝóÔsß ü…tß üŞ…uß ü†vß üś†wß üxß ü:yß üŠzß üTżN-. d€/ d‚0 dA…1 dˆ2 dë3 dÁ4 dÂ5 do6 d'Ő$“~‚é6'{ę6'2ë6'Ԁůái Á˝Ô=ď‚_Ž­S`Ž­P€aŽ­Fşp(Đşp(4şp(g‚şp(ż„şp(…GöŁ(ŐŐĺ31K†…41„÷9Ş ä1;?D;şˆ§ˇE;‰É•;Iě#7<+…BúL<(€ša<€gďÉ<‹ˆX›?:ˆK=şBmL=şB: M=şB N=şB O=şBD€ i}K…i}Kńƒi}K  i}K‚ i}K‚ i}Ké‚ i}K‰„ i}KĄÁ”@TŽ€”@T<† Ô@Tú… Ĕ@Tc„|Ŕ]€ }Ŕ]ř ~Ŕ]ׄ˛ĺb`€7ěĆer 8ěĆeL9ěĆe":ěĆerňŠn óŠn€ŻŸtέCMwڃŽCMw; ŻCMw‘ °CMw/ ąCMw›‚ ˛CMwŽ„ łCMw… ´CMwúľCMwłůCży€