¡@

 ²Ä¤»³¹ ¤À¸Ñ¦]¤l¡]Factoring¡^

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¦b¥»³¹¤¤§Ú­Ì±NÄ~Äò¬ã°Q¹ê²{¶¥¬q¡A³o¦¸ªº­«ÂI¬O¦b¡u¤À¸Ñ¦]¤l¡v¡C ©î¸Ñ¤¸¥ó»P¤À¸Ñ¦]¤l´N¹³¦P¤@­Ó¥\¯à°Ï¶ô¤¤ªº¤G­Ó´¹¤ù¡C¤GªÌ³£¯A¤Î¨ì¤À³Î©M²Õ ¦X¡C©î¸Ñ¤¸¥óµo¥Í¦bªì¨Bªº³]­p¶¥¬q¡F¦Ó¤À¸Ñ¦]¤l«hµo¥Í©ó²Ó³¡ªº³]­p»P¹ê²{¡C ¬JµM¨C¤@­Ó«_¸¹©w¸q³£¤Ï¬M¥X¤F»Ý­n°µ¤À¸Ñªº¨M©w¡A¤F¸ÑÀu¨}ªº¤À¸Ñ§Þ³N¤]³\¬O¤@ ­Ó²Å¦¡µ{¦¡³]­p®v³Ì­«­nªº§Þ¥©¤F¡D ¤°»ò¬O¡u¤À¸Ñ¦]¤l¡v©O¡H¤À¸Ñ·N¨ýµÛ±Nµ{¦¡½X²Õ´¦¨¬°¦³¥Îªº¤ù¬q¡C­n¨Ï¤@­Ó¤ù ¬q¦¨¬°¦³¥Îªº¡A§A³q±`¥²¶·±N¡u¥i¥H¦A«×¨Ï¥Îªº³¡¥÷¡v±q¡u¤£¯à¦A«×¨Ï¥Îªº³¡¥÷¡v¤ÀÂ÷ ¥X¨Ó¡C³o¡u¥i¥H¦A«×¨Ï¥Îªº³¡¥÷¡v´NÅܦ¨·sªº©w¸q¡A¦Ó³o¡u¤£¯à¦A«×¨Ï¥Îªº³¡¥÷¡v´N¦¨ ¬°©w¸qªº¤Þ¼Æ©Î°Ñ¼Æ¡C °µ¦¨³o¼Ë¤ÀÂ÷ªºµ²ªG³q±`³QºÙ¬°¡u¤À¸Ñ¡v¡]factoring out¡^¡C¥»³¹ªº²Ä¤@³¡¥÷±N ½Í½×¦UºØ¤À¸Ñªº§Þ¥©¡C ¨M©w¦³¦h¤ÖªF¦è­n©ñ¨ì¤@­Ó©w¸q¤º¡A¥H¤Î¦³¨Ç¤°»ò¬O­n©ñ¨ì©w¸q¤§¥~ªº¡A«h¬O¤À¸Ñ ¦]¤lªº¥t¤@­Ó¸ÜÃD¡C¥»³¹ªº²Ä¤G³¡¤À±N·§­z¤@¨Ç¦³®Äªº¤À¸Ñ¦]¤lªº·Ç«h¡C


¤À¸Ñªº§Þ¥©

°²¦p±q¨t²Î¤ºªº¥t¤@­Ó¦a¤è¬Ý¨Ó¡A¤@­Ó¼Ò²Õ¦ü¥G¬O¡A¦ý¨Ã¤£¥þµM¬O¡A¦³¥Îªº¡A¨º»ò ´NÀ³¸ÕµÛÃѧO¨Ã¹jÂ÷¥X³o¨Ç¦³¥Îªº°Æ¥\¯à¡C¼Ò²Õªº³Ñ¾l³¡¥÷¤]³\¥i¥H¦X¨Ö¨ì¥¦­ì¨Ó ªº©I¥sªÌ¤§¤º¡]ºK¿ý¦Û ¡qµ²ºc¤Æªº³]­p[1]¡r ¤@¤å¡^¡C

³o¡u¦³¥Îªº°Æ¥\¯à¡v·íµM´NÅܦ¨¤F³Ì·s¤À¸Ñ¥X¨Óªº©w¸q¡C¦Ü©ó¨º­Ó¡u¤£¬O¨º»ò¦³¥Îªº¡v ³¡¥÷©O¡H³o´N±o¬Ý¥¦¬O¤°»ò¤F¡C


¤À¸Ñ¥X¸ê®Æ¡]Factoring Out Data¡^

¯à³Q¤À¸Ñ¥X¨Óªº³Ì²³æªºªF¦è´N¬O¸ê®Æ¡A³o±o·PÁ²Ŧ¡ªº¸ê®Æ°ïÅ|¡C¨Ò¦p¡A­n­pºâ¥X 1,000ªº2/3¡A§Ú­Ì¼g

      1000 2 3 */

­n©w¸q¤@­Óµü¨Ó­pºâ¥ô¦ó¼Æ­Èªº2/3¡A§Ú­Ì´N±N³o­Ó¤Þ¼Æ±q©w¸q¤¤¤À¸Ñ¥X¡G

      : ¤T¤À¤§¤G   ( n1 --n2 )   2 3 */ ;

·í¸ê®Æ¦s¦b©ó¤@­Ó"¦³¥Îªº¤ù»y"ªº¤¤¶¡³¡¦ì¡A´N¥²¶·¨Ï¥Î¨ì°ïÅ|¾Þ§@¡C¨Ò¦p¡A­n±N¤@¬q 10­Ó¦r¤¸ªø«×ªº¤å¦r©ñ¦b¤@­Ó80¦æ¼eªº¿Ã¹õ¤¤¥¡¦ì¸m¡A§Ú­Ì¥i¯à¼g¡G

      80  10  -  2/  SPACES

¦ý¤å¥y¥¼¥²³£¬O10­Ó¦r¤¸ªø¡C­n¨Ï³o­Ó¤ù»y¹ï¥ô¦ó¦r¦ê³£¬O¦³¥Îªº¡A§A´N±o¤À¸Ñ¥X "ªø«×"³o¶µ¸ê®Æ¡G

      :~FBBB1;¸m¤¤~I;   ( ~FBBB1;ªø«× -- )   80  SWAP -  2/ SPACES ;

¸ê®Æ°ïÅ|¤]¯à³Q¥Î¨Ó¶Ç»¼¦a§}¡C¦]¦¹¡A³Q¤À¸Ñ¥X¨Óªº©Î³\¬O¤@­Ó¸ê®Æªº«ü¼Ð¦Ó«D¸ê®Æ¥» ¨­¡C¸ê®Æ¥i¥H¬O¼Æ­È©Î¬Æ¦Ü¬O¦r¦ê¡A¦Ó¤´µM¯à¸g¥Ñ°ïÅ|ªº¨Ï¥Î¦Ó³Q¤À¸Ñ¥X¨Ó¡C ¦³®É¡A®t²§ªº¦a¤è¬Ý°_¨Ó¹³¬O¤@­Ó¥\¯à¡A¦ý§A¤´¯à²³æ¦a±N¥¦µø¬°¤@­Ó°ïÅ|¤Wªº¼Æ ­È¦Ó¤À¸Ñ¥X¨Ó¡C¨Ò¦p¡G

      ~FB7T64BY1BB1;¬q¸¨¤@¡G  WILLY NILLY  PUDDIN' PIE AND
     ~FB7T64BY1BB1; ¬q¸¨¤G¡G  WILLY NILLY  8 *  PUDDIN' PIE AND

§A¦p¦ó¤À¸Ñ¥X³o­Ó¡y8 *¡zªº¹Bºâ¡H¸g¥Ñ±N¡y*¡z¸m©ó¤À¸Ñ¥Xªº¦]¤l¤§¤¤¨Ã¶Ç°e¤@­Ó 1©Î8µ¹³o­Ó·s©w¸q¡G

      : NEW   ( n--)   WILLY NILLY  *  PUDDIN' PIE AND ;
     ~FB7T64BY1BB1; ¬q¸¨¤@¡G  1 NEW
      ~FB7T64BY1BB1;¬q¸¨¤G¡G  8 NEW

¡]·íµM¡A¦pªG¡yWILLY NILLY¡z§ïÅܤF°ïÅ|¡A§A´N»Ý­n¥[¤W¾A·íªº°ïÅ|¹B§@¡^ ¦pªG¹Bºâ¯A¤Î¨ì¥[ªk¡A§A¤]¯à¸g¥Ñ¶Ç°e¤@­Ó0¨Ó¥­¿Å¥¦¡C

¡@

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¬°¤F²³æ¡A¹Á¸Õ¨Ï¥Î¼Æ¦r¡]¼Æ­È©Î¦a§}¡^¤Wªº®t²§¨Óªí¥Ü³o¨Ç¬Û¦ü¤ù¬q¶¡ªº®t§O¡A ¦Ó¤£­n¥Hµ{§Ç¤Wªº®t²§¨Óªí¥Ü¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¤À¸Ñ¥X¥\¯à¡]Factoring Out Functions¡^

¦b¥t¤@¤è­±¡A¦³®É¬O¤@ºØ¥\¯à¤Wªº®t§O¡C¨Ò¦p¡G

   ¡@ ~FB7BB1;¬q¸¨¤@¡G  BLETCH-A  BLETCH-B  BLETCH-C  BLETCH-D  BLETCH-E  BLETCH-F
   ¡@ ~FB7BB1;¬q¸¨¤G¡G  BLETCH-A  BLETCH-B  PERVERSITY  BLETCH-D  BLETCH-E  BLETCH-F

¿ù»~ªº¤À¸Ñ¤è¦¡¬O¡G

      : BLETCHS   ( t=do-BLETCH-C | f=do-PERVERSITY -- )
         BLETCH-A  BLETCH-B  IF  BLETCH-C  ELSE  PERVERSITY  THEN
         BLETCH-D  BLETCH-E  BLETCH-F ;
      ~FB7BB1;¬q¸¨¤@¡G  TRUE  BLETCHS
      ~FB7BB1;¬q¸¨¤G¡G  FALSE  BLETCHS

¤@­Ó¸û¦nªº¤è¦¡¡G

      : BLETCH-AB   BLETCH-A  BLETCH-B ;
      : BLETCH-DEF   BLETCH-D  BLETCH-E  BLETCH-F ;
      ~FB7BB1;¬q¸¨¤@¡G  BLETCH-AB  BLETCH-C  BLETCH-DEF
     ~FB7BB1; ¬q¸¨¤G¡G  BLETCH-AB  PERVERSITY  BLETCH-DEF

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¤£­n¦V¤U¼h¶Ç»¼"±±¨îºX¸¹"¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¬°¦ó¤£¡H²Ä¤@¡A§A¬O¦b­n¨D¨º­Ó°õ¦æ¤¤ªºµ{¦¡°µ¤@­ÓµL·N¸qªº¨M©w --¤@­Ó§A¦bµ{¦¡ ³]­p®É´N¤w¸gª¾¹Dµª®×ªº¨Æ-- ¦]¦¹´î§C¤Fµ{¦¡°õ¦æªº®Ä²v¡C²Ä¤G¡A³o¼Ëªº¥Î»y©M·§ ©À¤Wªº¼Ò«¬¨Ã¤£¤Ç°t¡C¡yFALSE BLETCHES¡z¤ù»y¦b¹ï·ÓµÛ¡yTRUE BLETCHES¡z®É¬O¤°»ò ·N«ä©O¡H
±q±±¨îµ²ºc¤§¤º¤À¸Ñ¥Xµ{¦¡½X

¹ï¤@­Ó¡yIF ELSE THEN¡zµ²ºcªº¨âÃä­«ÂÐ¥X²{ªº±Ô­z­n¦³©Òĵ±§¡C¨Ò¦p¡G

      ... ( c )   DUP  BL 127 WITHIN
               IF  EMIT  ELSE  DROP  ASCII . EMIT  THEN

³o¬qµ{¦¡½X¥­±`·|°e¥X¤@­ÓASCII¦r¤¸¡A¦ý¦pªG³o­Ó¦r¤¸¬O¤@­Ó±±¨î½X¡A¥¦´N§ï°e¥X¤@­Ó ÂI¡C¤£½×¨«¨º¤@±ø¸ô®|¡A¥¦³£·|°õ¦æ¡yEMIT¡zªº°Ê§@¡C±N¡yEMIT¡z¦Û³o­Ó±ø¥óµ²ºc¤¤¤À¸Ñ ¥X¡A¹³³o¼Ë¡G

      ...  ( c )   DUP  BL 127 WITHIN  NOT
                IF  DROP  ASCII .  THEN  EMIT

·í¤G­Ó©w¸qªº®t²§¬O¦bµ²ºc¤§¤¤ªº¤@­Ó¥\¯à®É¡A´N·|¬O³Ì§xÂZªº±¡ªp¡A¦Ó¨Ï±o­n±N³o "¥b­Ó¤ù¬q"¤À¸Ñ¥X¨Ó¦¨¬°¤£¥i¯àªº¨Æ¡C¦b³o¼Ëªº±¡ªp¤¤¡A´N­n¨Ï¥Î¨ì°ïÅ|¤Þ¼Æ¡BÅܼơB ©Î¬Æ¦Ü¦V¶qµ¥§Þ¥©¡C§Ú­Ì±N¦b²Ä7³¹¤¤¡u¨Ï¥Î DOER/MAKE¡vªº³¡¥÷¬Ý¥X¦p¦ó¨Ï¥Î¦V¶q¨Ó ³B²z³oºØ±¡ªp¡C ¤U­±¬O¤@­ÓÃö©ó±q¡yDO LOOP¡z°j¸ô¤¤¤À¸Ñ¥Xµ{¦¡½Xªº¤@­Ó´£¥Ü¡G

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ­n¤À¸Ñ¥X¤@­Ó¡yDO LOOP¡zªº¤º®e¬°¤@­Ó·sªº©w¸q¡A¥²¶·­«·s¦Ò¼{½Xªº¼gªk¡A¥H¨Ï ¡yI¡z¤£·|¦b³o­Ó·s©w¸q¤º³Q¨Ï¥Î¨ì¡A¦ÓÀ³±N¥¦¥H°ïÅ|¤Þ¼Æªº¤è¦¡¶Ç»¼¹L¨Ó¡C
 ¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
¡@

±N±±¨îµ²ºc¤À¸Ñ¥X¨Ó

³o¸Ì¦³¤G­Ó©w¸q¡A¥¦­Ìªº®t²§¦s¦b©ó¤@­Ó¡yIF THEN¡zªºµ²ºc¤º¡G

      : ACTIVE   A B OR  C AND  IF  TUMBLE JUGGLE JUMP   THEN ;
      : LAZY     A B OR  C AND  IF    SIT   EAT   SLEEP  THEN ;

¨ä¤¤ªº±ø¥ó»P±±¨îµ²ºc³£¬O¬Û¦Pªº¡F¥u¦³­n°µªº¨Æ¤£¦P¡C¬JµM§A¤£¯à¤À¸Ñ¡yIF¡z¨ì¤@­Ó¦r ¦Ó¡yTHEN¡z¨ì¥t¤@­Ó¦r¡A¨º»ò³Ì²³æªº¤è¦¡´N¬O¤À¸Ñ¥X³o­Ó±ø¥ó¡G

      : CONDITION?   ( -- ? )   A B OR  C AND ;
      : ACTIVE   CONDITION? IF  TUMBLE JUGGLE JUMP   THEN ;
      : LAZY     CONDITION? IF   SIT    EAT   SLEEP  THEN ;

¨Ì³oºØ¬Û¦Pªº±ø¥ó»P±±¨îµ²ºc­«½Æ¥X²{ªº¦¸¼Æ¦Ó©w¡A§A¬Æ¦Ü¥i¯à·Q­n±N¨âªÌ³£¤À¸Ñ¥X¨Ó¡C ª`·N¤U­±ªº°µªk¡G

      : CONDITIONALLY    A B OR  C AND NOT IF  R> DROP  THEN ;
      : ACTIVE   CONDITIONALLY   TUMBLE JUGGLE JUMP ;
      : LAZY     CONDITIONALLY   SIT    EAT   SLEEP ;

¡yCONDITIONALLY¡z³o­Ó¦r --µø±ø¥ó¦Ó©w-- ¥i¯à·|§ïÅܱ±¨î¬yµ{¥H¸õ¹L©w¸q¤¤¸ò¦b«á­± ªº¨º¨Ç¦r¡C¦ý³oºØ¤è¦¡¤]¦³¤@¨Ç¯ÊÂI¡C§Ú­Ì±N¦b²Ä8³¹¤¤½Í½×³o­Ó§Þ¥©ªºÀu¦H¡C ÁÙ¦³§ó¦h±N±±¨îµ²ºc¤À¸Ñ¥X¨Óªº¨Ò¤l¡A¥]¬A¡yCASE¡z±Ô­z --¥¦®ø°£¤F±_ª¬ªº¡yIF ELSE THEN¡zµ²ºc¡A¤Î¦h­«¥X¤fªº°j°é¡] BEGIN WHILE WHILE WHILE ... REPEATªºµ²ºc¡^ ¡C§Ú­Ì±N¦b²Ä8³¹¤¤½Í½×³o¨Ç¥DÃD¡D
¤À¸Ñ¥X¦W¦r¡]Factoring Out Names¡^

·í¤@¨Ç¦W¦r´X¥G¬O¡A¦ý¤£¥þµM¬O¡A¬Û¦P®É¡A¤À¸Ñ¥¦­Ì¦ü¥G¬OºØ¸û¦nªº°µªk¡CÀ˵ø¤U­±³o ­Ó¥i©Èªº¨Ò¤l¡A³o¨Ç½X¬O¥Î¨Ó³]©w»P¤K­ÓÀW¹D¤¤¨C­ÓÀW¹D¬ÛÃöªº¤T­ÓÅܼƪºªì­È¡G

      VARIABLE 0STS   VARIABLE 1STS   VARIABLE 2STS
      VARIABLE 3STS   VARIABLE 4STS   VARIABLE 5STS
      VARIABLE 6STS   VARIABLE 7STS   VARIABLE 0TNR
      VARIABLE 1TNR   VARIABLE 2TNR   VARIABLE 3TNR
      VARIABLE 4TNR   VARIABLE 5TNR   VARIABLE 6TNR
      VARIABLE 7TNR   VARIABLE 0UPS   VARIABLE 1UPS
      VARIABLE 2UPS   VARIABLE 3UPS   VARIABLE 4UPS
      VARIABLE 5UPS   VARIABLE 6UPS   VARIABLE 7UPS
      : INIT-CH0   0 0STS !  1000 0TNR !  -1 0UPS ! ;
      : INIT-CH1   0 1STS !  1000 1TNR !  -1 1UPS ! ;
      : INIT-CH2   0 2STS !  1000 2TNR !  -1 2UPS ! ;
      : INIT-CH3   0 3STS !  1000 3TNR !  -1 3UPS ! ;
      : INIT-CH4   0 4STS !  1000 4TNR !  -1 4UPS ! ;
      : INIT-CH5   0 5STS !  1000 5TNR !  -1 5UPS ! ;
      : INIT-CH6   0 6STS !  1000 6TNR !  -1 6UPS ! ;
      : INIT-CH7   0 7STS !  1000 7TNR !  -1 7UPS ! ;
      : INIT-ALL-CHS   INIT-CH0  INIT-CH1  INIT-CH1  INIT-CH2  INIT-CH3
         INIT-CH4  INIT-CH5  INIT-CH6  INIT-CH7 ;

­º¥ý³o¨ÇÅܼƪº¦W¦r³£«Ü¬Û¦ü¡F¨ä¦¸¡A¨C­ÓÀW¹Dªº¡yINIT-CH¡zªº©w¸q¤]³£«Ü¬Û¦ü¡C
      ¤U­±¬O¤@­Ó§ïµ½¤Fªº¸Ñµª¡C³o¨Ç¬Û¦üªºÅܼƦWºÙ³Q¤À¸Ñ¦¨¤T­Ó¸ê®Æµ²ºc¡A¦Ó³o¨Ç¤¾ªøªº¡yINIT-CH¡z¦r¤]³Q¤À¸Ñ¬°¤@­Ó¡yDO LOOP¡zµ²ºc¡G

      : ARRAY   ( #cells --)   CREATE  2* ALLOT
         DOES>  ( i -- 'cell)   SWAP  2* + ;
      8 ARRAY STATUS   ( channel# -- adr )
      8 ARRAY TENOR    (        "        )
      8 ARRAY UPSHOT   (        "        )
      : STABLE   8 0 DO  0 I STATUS !   1000 I TENOR !   -1 I UPSHOT !  LOOP ;

³o´N¬O§Ú­Ì©Ò»Ý­nªº¥þ³¡ªº½X¡C
§Y¨Ï¦b³ÌµL¶dªº®×¥ó¤¤¡A¤@ÂIÂIªº¸ê®Æµ²ºc¤]¯à®ø°£¦h¾lªº¦W¦r¡C¦b²ßºD¤W¡A²Å¦¡¬O¥H"±aµÛªø«×ªº¦r¦ê" ¨Ó³B²z¤å¥y¡]±N¦r¦êªø«×¦s©ñ¦b²Ä¤@­Ó¦r¤¸ªº¦a§}¤º¡^¡C¥ô¦ó¤@­Ó¶Ç¦^¦r¦êªº¦r¡A¹ê»Ú¤W¬O¶Ç¦^¨º­Ó¦r¦êªº°_©l¦a§}¡A¤]´N¬O¦r¦êªº­p¼Æ­È¦s©ñ¤§©Ò¦b¡C¨Ï¥Î³oºØ"¤GºØ¦¨¤À"ªº¸ê®Æµ²ºc¡A¤£¶È®ø°£¤F¦]¤À¶}¦r¦ê»P­p¼Æ©Ò»Ýªº¤£¦P¦W¦r¡A¤]¨Ï±o¦b°O¾ÐÅ餤²¾°Ê¦r¦êÅܱo®e©ö¨Ç¡A¦]¬°³æ¤@­Ó¡yCMOVE¡zªº©R¥O´N¯àÅý§A½Æ»s³o­Ó¦r¦ê»P¥¦ªº­p¼Æ­È¡C
·í§A¶}©l¦b¦U³B³£µo²{¨ì¦P¤@ºØ¬Û¦Pªº²Â©å®É¡A§A´N¯à¸g¥Ñ±N¨Æ±¡²Õ¦X¥H¨Ï³oºØ²Â©å®ø¥¢¡C

¤À¸Ñ¥X¥\¯à¨ì©w¸q¦r¤§¤¤~T64BY1;¡]Factoring Out Functions into Defining Word¡^

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü  ¦pªG¤@¨t¦Cªº©w¸q³£§t¦³¬Û¦Pªº¥\¯à¡A¯­¬O¸ê®Æªº¤º®e¦³ÅÜ¡A«h¨Ï¥Î¤@­Ó"©w¸q¦r"¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

À˵ø¤U­±³o¨Ç½Xªºµ²ºc¡]¥ý§OºÞ¥¦­Ìªº¥Î³~ --§A¦bµy«á·|¬Ý¨ì³o¬Û¦Pªº¨Ò¤l¡^¡G

      : HUE   ( color -- color' )   'LIGHT? @  OR  0 'LIGHT? ! ;
      : BLACK     0 HUE ;
      : BLUE      1 HUE ;
      : GREEN     2 HUE ;
      : CYAN      3 HUE ;
      : RED       4 HUE ;
      : MAGENTA   5 HUE ;
      : BROWN     6 HUE ;
      : GRAY      7 HUE ;

¤W­±ªº¤è¦¡¦b§Þ³N¤W»¡¨Ó¬O¥¿½Tªº¡A¦ý¤ñ°_¤U­±¨Ï¥Î©w¸q¦rªº¤è¦¡¡A¦b°O¾ÐÅé¨Ï¥Îªº®Ä ²v¤W´N®t¤F¤@¨Ç¡G

      : HUE   ( color --)   CREATE  ,
         DOES>  ( --color )   @  'LIGHT? @  OR  0 'LIGHT? ! ;
      0 HUE BLACK     1 HUE BLUE     2 HUE GREEN
      3 HUE CYAN      4 HUE RED      5 HUE MAGENTA
      6 HUE BROWN     7 HUE GRAY

¸g¥Ñ¨Ï¥Î©w¸q¦r¡A§Ú­Ì¥i¥H¬Ù¤U¨C­Ó½sͧ¹¦¨ªº«_¸¹©w¸q¦bµ²§ô®É©Ò»Ý­nªº¡yEXIT¡zªº¦a §}¡C¡]¦b16¦ì¤¸ªº²Å¦¡¨t²Î¤W¡A8­Ó©w¸q¦@¬Ù¤U14¦r¤¸ªº°O¾ÐÅé¡^¦Ó¥B¡A¦b«_¸¹©w¸q ¤¤¨C°Ñ¦Ò¨ì¤@­Ó¼Æ­È¡A«h·|¦h½s¤J¤@­Ó¡yLIT¡zªº¦a§}¡C¡]¦A¥[2­Ó¦r¤¸¡^ ¦b¥iŪ©Ê¤W¡A¦]¬°¸g¥Ñ³o­Ó©w¸q¦r©Ò©w¸q¥Xªº©Ò¦³ÃC¦â¡A³£ÄÝ©ó¦P¤@®a±Ú¡A¦b ·N¸q¤W§ó¬Oµ´¹ïªº²M´·¡C ©w¸q¦r³Ì±j¦Ó¦³¤O¤§³B¦b¡A·í¤@¨t¦Cªº©w¸q³£¦@¨ÉµÛ¬Û¦Pªº¡u½sĶ®É°Ïªº¦æ¬°¡v®É¡A ´N·|¥YÅã¥X¨Ó¡C³o­Ó¥DÃD¬O¤@­Óµy«áªº³¹¸`"½sĶ®É°Ïªº¤À¸Ñ"©Ò­n°Q½×ªº¡C


¤À¸Ñªº·Ç«h

¦b¹ï¤À¸Ñªº§Þ¥©¦³©Ò¤F¸Ñ¤§«á¡A²{¦bÅý§Ú­Ì°Q½×¤@¨Ç¤À¸Ñ²Å¦¡©w¸qªº·Ç«h¡C¥¦­Ì¥] §t¤F¡G

1. ­­¨î¤@­Ó©w¸qªº¤j¤p 2. ­­¨î­«½Æ¥X²{ªº½X 3. ©R¦Wªº¯à¤O 4. ¸ê°TÁôÂà 5. ²¤Æ"©R¥Oªº¤¶­±"

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü «O«ù©w¸qµu¤p
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
§Ú­Ì°ÝMoore¡A¡u¤@­Ó²Å¦¡ªº©w¸qÀ³¸Ó¬O¦hªø©O¡H¡v

¤@­Ó¦rªº©w¸qÀ³¸Ó¬O¤@¦æªø¡C¨º¬O¥Ø¼Ð¡C ·í§A¦³¤@°ï¦r¡A¥¦­Ì¦b¦Û¤vªº²z¥Ñ¤W¥þ³£¬O¦³¥Îªº --¤]³\¬O¦b°£¿ù¤W¡B©Î¬°¤F±´¨s ¨Æ±¡¡A¦ý¤£¥iÁ×§KªºÁ`¦³¥¦­Ì¦s¦bªº²z¥Ñ-- §A¯à·Pı¨ì§A¤w¸gÂ^¨ú¨ì¤F°ÝÃDªº¥»½è ¡A¦Ó³o¨Ç¦r¤]¥¿«ê·íªºªí¹F¥X¥¦¤F¡C µu¤pªº©w¸q·|µ¹§A¤@ºØ¦nªº·Pı¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¹ïMoore¥ý¥Íªº¤@­ÓÀ³¥Îµ{¦¡©Ò°µªº¤@¶µ«D¥¿¦¡ªºÀˬdÅã¥Ü¥X¡A¥L¦b¨C­Ó©w¸q¤¤¡A¥­§¡¥Î ¨ì7­Óµü©M¼Æ­È¡C³o«Ü©úÅã¦a¬O¤@­Óµu¤pªº©w¸q¡C¡]¹ê»Ú¤W¡A¦b¥Lªº½X¤¤¡A¤@¦æªº©w¸q©M ¤G¦æªº©w¸q¡A¤À§O¦û¦³¬ù50¢Hªº¤ñ¨Ò¡^ ¤ß²z¾Ç¤Wªº¸ÕÅçÅã¥Ü¡A¤HÃþªº¤ßÆF¦P¤@®É¨è¥u¯à¶°¤¤¥¦ªº·NÃѨì¤C¥ó¥ª¥kªº¨Æ±¡ ¤W[2]¡C¦ý¬O¡A¤£¤À±Þ©]ªº¡A¤ßÆFªº¥¨¤j¸ê·½«o¼ç·NÃѦaÀx¦s¤U¥¨¶qªº¸ê®Æ¡A¨Ã«Ø¥ß¨ä¶¡ ªºÃöÁp¡A¤Î¸Ñ¨M°ÝÃD¡C §Y¨Ï§Ú­Ìªº¼ç·NÃÑ¤ßÆFª¾¹D¤@­ÓÀ³¥Îµ{¦¡ªº¨C­Ó³¡¥÷¡A§Ú­Ì¯U¯¶Æ[ÂIªº·NÃÑ¤ßÆF¤] ¥u¯à¦P®É¨Ï¨ä¤¤¤C­Ó¤¸¯À¬ÛÃöÁp¡C¶W¹L³oÂI¡A§Ú­Ìªºª`·N¤O´N·|°Ê·n¡Cµu¤pªº©w¸q »P§Ú­Ì¤ß´¼ªº¯à¤O¬O¬Û¤¬§k¦Xªº¡C »¤¨Ï«Ü¦h²Å¦¡µ{¦¡³]­p®v¼g¥X¹L«×¤¾ªøªº©w¸q¡A³¡¥÷­ì¦]¬O¦]¬°¥L­Ìª¾¹D¤@­Ó©w¸q ªº"ÀY³¡"·|¦û¥Î¤@¨Çµü¨åªºªÅ¶¡¡C¤À¸Ñ°µªº·U¤Ö¡A¦W¦r´N·U¤Ö¡A°O¾ÐÅ骺®ö¶O¤]·U¤Ö¡C ªº½T¬O·|¥Î¥h¸û¦hªº°O¾ÐÅé¡A¦ý«ÜÃø»¡¨º¨Ç¥Î¨ÓÀ°§U§A´ú¸Õ¡B°£¿ù©M¥æ½ÍªºªF¦è ¬O¤@ºØ"®ö¶O"¡C¦pªG§AªºÀ³¥Îµ{¦¡«Ü¤j¡A¨º»ò¸ÕµÛ¥h¨Ï¥Î"¤T­Ó¦r¤¸ªø«×ªº©R¦W"¤è¦¡ ¡]¦ý¤´«O¯d«ì´_¨Ï¥Î¥þ¦Wªº¯à¤O¡A¥HÁ×§K¦b¯S§O±¡ªp¤U¡A¦W¦r¤Wªº½Ä¬ð¡^¡C ¦pªG³o¼Ë°µ¤§«á¡AÀ³¥Îµ{¦¡¤´µM¤Ó¤j¡C¨º»ò¦Ò¼{Âà´«¨ì¤@­Ó¦³©µ¦ù°O¾ÐÅ骺¦h­Ó µü¨åªº²Å¦¡¨t²Î¡A©ÎªÌ¥t¤@­Ó§ó¦nªº¤è¦¡¡A¨Ï¥Î¤@­Ó¦³32¦ì¤¸©w§}ªÅ¶¡ªº²Å¦¡¨t²Î¡C ¥t¤@­Ó¬ÛÃöªºÅU¼{¬O¡A®`©È¹L¦hªº¤À¸Ñ±N·| --¦]¬°²Å¦¡¤º³¡¸Ñ;¹¹B§@ªº®É¶¡ ¯Ó¶O-- ³y¦¨©Ê¯à¤Wªº­°§C¡C³oÂI¤]¬O¹ïªº¡A¨C¤@¼h©I¥sªº½T¬O­n¥I¥X¤@¨Ç¥N»ù¡C¦ý¦b ¥¿±`ª¬ªp¤U¡A¸g¥Ñ¾A·íªº¤À¸Ñ¡A³oÃB¥~ªº©I¥s©Ò¥I¥Xªº¥N»ù¬O¬dı¤£¨ìªº¡C¦pªG°õ¦æ³t «×ªº»Ý¨D¯uªº³o»ò¨S¦³¦ùÁY¾l¦a¡A¨º»ò¯u¥¿ªº¸Ñ¨M¤è¦¡¡AÁÙ¬OÀ³¸Ó§â¤@¨Ç¦r§ï¼g¬°²Õ¦X »y¨¥©w¸q¡A¤~¸û¬°§´·í¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¦b§A¹ï§Aªº½X·Pı¤£½T©wªº¦a¤è¶i¦æ¤À¸Ñ¡]¦b¨º¸Ì¡A¨Æ±¡ªº½ÆÂø«×¤w¸g±µªñ¤F·NÃѤW ªº·¥­­¡^¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¤£­nÅý§Aªº¦Û¶Æ¯¸¥X¨Ó»¡¡G¡uÁöµM½ÆÂø¡A¦ý§ÚÁÙ¬O¯à¥H³o¼Ë¦a¤è¦¡¨Ó¸Ñ¨M¥¦¡I¡v¡C²Å¦¡½X µ´¤£À³¸ÓÅý¤H·P¨ü¨ì¨ººØ¥O¤H¤£§Öªº½ÆÂø«×¡C¤À¸Ñ¥¦¡I

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
Moore»¡¡G

¶i¦æ¤À¸Ñªº±¡ªp¤§¤@¬O·í§A·Pı¦n¹³·|¤Þ¤J¤@­Ó¿ù»~®É¡C¯­­n¬Ý¨ì¤@­ÓÂù¼hªº¡yDO LOOP¡zµ²ºc¥X²{¡A¨º´N¬O¤@­Ó"¤£¹ï«l¤F"ªºÄµ¥Ü¡A¦]¬°¥¦±N¬OÃø¥H°£¿ùªº¡C§Ú´X¥G ¤@©w·|±N¤º¼hªº¡yDO LOOP¡z°j¸ô¤À¸Ñ¥X¨Ó¦¨¬°¤@­Ó¦r¡C ¬°¤F´ú¸Õªº¥Øªº¦Ó¤À¸Ñ¥X¨Óªº¦r¡A¨S¦³²z¥Ñ¦A±N¥¦¶ë¦^¥h¡C§A¦b¥¦²Ä¤@¦¸¥X²{ ªº¦a¤èµo²{¡A±N¥¦¤À¸Ñ¥X¨Ó¬O­Ó¥¿½Tªº°µªk¡C¨S¦³¤H¯à«Oµý§A¤£·|¦A¦¸¦a»Ý­n¥¦¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

³o¸Ì¬O¦P¤@­Ó­ì«hªº¥t¤@­±¡G

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¦b¦ü¥G»Ý­n°µµù¸Ñªº¦a¤è¤À¸Ñ¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¯S§O¬O·í§A·Pı¦n¹³»Ý­n´£¿ô§A¦Û¤v¦³¨Ç¤°»òªF¦è¦b°ïÅ|¤W®É¡A³o©Î³\¥¿¬O"Â_¶}¨Ó"ªº ¦n®É¾÷¡C °²³]§A¦³

      ... BALANCE  DUP  xxx  xxx  xxx  xxx  xxx  xxx  xxx
              xxx  xxx  xxx  xxx  xxx    ( -- balance )  SHOW  ...

³o¬q½X¥H­pºâ±b¥Øªº¥­¿Å¶}©l¡A¨Ã¥HÅã¥Ü¥¦°µ¬°µ²§ô¡C¦b¨ä¶¡¡A¦P®É¥t¦³´X¦æ½X¡A¦]¬° »Ý­n¦Ó¨Ï¥ÎµÛ³o­Ó¥­¿Å­È¡C¯à°÷¬Ý¥X·í¡ySHOW¡z°õ¦æ®É¡A³o­Ó­ÈÁÙ¤´µM¯d¦b°ïÅ|¤W¡A¨Ã ¤£®e©ö¡A©Ò¥Hµ{¦¡³]­p®v´N´¡¤J¤@­Ó°ïÅ|µù¸Ñ¡C ³o¼Ëªº¸Ñµª³q±`¥NªíµÛ¤@ºØ¤£¨}ªº¤À¸Ñ¡C¤ñ¸û¦nªº¼gªk¬O¡G

      : REVISE   ( balance -- )   xxx  xxx  xxx  xxx  xxx  xxx  xxx
           xxx  xxx  xxx  xxx  xxx  xxx  ;
      ...  BALANCE  DUP REVISE  SHOW  ...

¥¦¤£»Ý­n±Ô¨Æ¦¡ªº°ïÅ|¹Ïµe¡C¦Ó¥B¡Aµ{¦¡³]­p®v²{¦b¦³¤F¤@­Ó¥i¥H¦A«×¨Ï¥Îªº¡B¥i³Q´ú¸Õ ªº°Æ©w¸q¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ­­¨îµ{¦¡½Xªº­«½Æ¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¤À¸Ñªº²Ä¤G­Ó²z¥Ñ --®ø°£µ{¦¡½Xªº­«½Æ¬q¸¨-- ³o­n¤ñ´î¤p©w¸qªº¤Ø¤o§ó¬°­«­n¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
Moore»¡¡G

·í¤@­Óµü¥u¬O¤@°ïªF¦èªº®É­Ô¡A¥¦¹ïµ{¦¡¦b·N«ä¤Wªº²M´·«×¡B©ÎªÌ°£¿ù¤Wªº¤è«K¡AÁö µM¬O¦³¥Îªº¡A¦ýÁ`¤ñ¤£¤W¨ººØ¯à³Q¦h¦¸¨Ï¥Îªºµü¨º»ò¦n¡C¤@­Óµü­Y¬O¥u³Q¨Ï¥Î¤@¦¸¡A §A´N¸Ó¦Ò¼{¥¦¬O§_­È±o¦s¦b¡C ¦³³\¦h¦¸¡A·í¤@­Óµ{¦¡ªº¤Ø¤oÅܱo¤Ó¤jªº®É­Ô¡A§Ú´N¦^ÀY´M§ä¨º¨Ç·|¤Þ°_§Úªºª`·N ªº¤ù»y¡A¬Ý¬Ý¬O§_¯à°÷±N¥¦­Ì¤À¸Ñ¥X¨Ó¡C¹q¸£°µ¤£¤F³o¥ó¨Æ¡F¦]¬°¨ä¤¤¦³¤Ó¦hªºÅÜ ¼Æ¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¦b¦^ÅU§Aªº¤u§@®É¡A§A¸g±`¯àµo²{¬Û¦Pªº¤ù»y¡B©Î­«½Æ¥X²{¤F¦n´X¦¸ªºµü¥y¡C¦b§Ú¼g¤@ ­Ó½s¿è¾¹®É¡A§Úµo²{¤U­±³o­Ó¤ù»y­«½Æ¥X²{¤F¦n´X¦¸¡G

      FRAME  CURSOR @ +

¦]¬°¥¦¥X²{¤F¦n´X¦¸¡A©Ò¥H§Ú±N¥¦¤À¸Ñ¥X¨Ó¦¨¬°¤@­Ó·s¦r¡yAT¡z ¡C §A¦Û¤v­n¯à¤À¿ë¥X¨º¨Ç¼g¥X¨Ó¤£¦P¡A¦ý¥\¯à¤W«o¬O¬Û¦Pªº½X¡A¨Ò¦p¡G

      FRAME  CURSOR @ 1-  +

¨ä¤¤¡y1-¡zªº¥X²{¨Ï³o­Ó¤ù»y¬Ý¦ü¤£¦P©ó¡yAT¡zªº©w¸q¡A¦ý¨Æ¹ê¤W¡A¥¦¯à³Q¼g¦¨¡G

      AT  1-

¥t¤@¤è­±¡G

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ·í¤À¸Ñ¥X­«½Æªº½X®É¡A­n½T©w³o­Ó¤À¸Ñ¥Xªº½X¥u¨ã¦³³æ¤@¥Øªº¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¤£­nª¼¥Ø¦a§ì¦í¨º¨Ç­«½ÆªºªF¦è¡A¥¦­Ì¤]³\¨S¤°»ò¥Î³B¡C¨Ò¦p¡A¦b¬Y¤@­ÓÀ³¥Î¤¤ªº¤@ ¨Ç¦a¤è¡A§Ú¨Ï¥Î¨ì¤U­±ªº¤ù»y¡G

      BLK @ BLOCK  >IN @ +  C@

§Ú§â¥¦©w¸q¬°¤@­Ó·s¦r¡yLETTER¡z¡A¦]¬°¥¦¶Ç¦^³Q¸Ñ;¹©Ò«üµÛªº¦r¥À¡C ¦b¤@­Óµy«áªºª©¥»¤¤¡A§Ú·N¥~¦a¥²¶·¼g¥X¡G

      BLK @ BLOCK  >IN @ +  C!

§ÚµLªk¨Ï¥Î¤w¸g¦s¦bªº¡yLETTER¡z¡A¦]¬°¦¹³B¤£¬O¥H¡yC@¡z°µ¬°µ²§ô¡C§Ú¤£Ä@¦b·sª©¥»¤¤ ­«½Æªº¨Ï¥Î³o¤@¤j¶ôªº¤ù»y¡A¦Ó¿ï¾Ü­«·s±N¡yLETTER¡z¤À¸Ñªº§ó²Ó½o¨Ç --§â¡yC@¡z®³ ¥X¨Ó¡CµM«á¡A¥Îªk´NÅܦ¨¤F¬O¡yLETTER C@¡z©ÎªÌ¡yLETTER C!¡z¡C³o­Ó§ïÅܻݭn§Ú·j´M ¾ã­Óµ{¦¡¡A§ä¥X©Ò¦³¥X²{¡yLETTER¡z¤§³B¡A¨Ã¥H¡yLETTER C@¡z¨Ó¨ú¥N¥¦¡C§ÚÀ³¸Ó¦b ¤@¶}©l´N°µ¹ï¥¦¡A­n±N"¦a§}ªº­pºâ"»P"¹ï³o­Ó¦a§}ªº¹B§@"³o¤G¥ó¨Æ¤À¶}¨Ó¡C Ãþ¦ü©ó§Ú­Ì¹ï§Ü­«½Æ½Xªº±¡ªp¬O¡G

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ´M¨D­«½Æªº¦¡¼Ë¡]pattern¡^¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

°²¦p§Aµo²{§A¦Û¤v¦b°Ñ¦Ò¥ý«eµ{¦¡¤¤©Ò¼gªº¬Y¨Ç³¡¥÷¡A¨Ã±N¥¦­Ì«þ¨©¨Ó¨Ï¥Î¡A¨º»ò§A¤]³\ ¤w±N¤@­Ó¯S©wªºÀ³¥Î²V¦b¤@­Ó¥­±`ªº¬Ýªk¤§¤¤¡C§A©Ò«þ¨©ªº¨º¥÷¦¡¼Ë¤]³\¥i¥H¤À¸Ñ¥X¨Ó¡A §@¬°¤@­Ó¿W¥ßªº©w¸q¡A¦Ó³Q¨Ï¥Î¦b©Ò¦³Ãþ¦üªº±¡ªp¤¤¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ­n½T©w¯à¬°¤À¸Ñ¥Xªº³¡¥÷¨ú­Ó¦W¦r¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
Moore»¡¡G

°²¦p§A¦³¤@­Ó·§©À¡A¦ý¬O«o¤£¯àµ¹¥¦¤@­Ó³æ¤@ªº¦W¦r¡]¤£¬O«ü¨ººØ¥Î³s¦r²Å¸¹³s±µ µÛªº½Æ¦X¦WºÙ¡^¡A¨º»ò¥¦´N¤£¬O¤@­Ó"«ê·í¦¨§Î"ªº·§©À¡C©î¸Ñ¡]decomposition¡^ªº ­n¥ó¤§¤@´N¬O¦³©R¦Wªº¯à¤O¡C³o¼Ë¡A·íµM§A´N·|¹ï§Aªº·§©À§ó¨ã«H¤ß¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

§â³o­ÓÆ[ÂI»P²Ä¤@³¹¤¤"µ²ºc¤Æ³]­p"©Ò´£¥Xªº¼Ò²Õ©î¸Ñªº·Ç«h°µ¤@¤ñ¸û¡C®Ú¾Ú¨º­Ó¤èªk¡A ¤@­Ó¼Ò²Õ±N®i²{"¥\¯à©Êªº²Õ¦X"¡A¦Ó³oÂI¬O¥i¥H¸g¥Ñ¯à°÷¨Ï¥Î³æ¤@ªº¡B«D½Æ¦X©Êªº¥y¤l ¡A¨Ó´y­z¥X¥¦ªº¥\¯à¦Ó±o¥HÅçÃÒ¡C²Å¦¡ªº"­ì¤l"¡A¤@­Ó¦W¦r¡A§ó¨ã¦³10­¿¥H¤Wªº²Ó½o¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¤À¸Ñ©w¸q¡A¥H«KÁôÂÃ"¥i¯à³Q§ïÅܪº²Ó¸`"¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¦b«e´X³¹¤¤¡A§Ú­Ì¤w¸g¬Ý¨ì¤F¸ê°TÁôÂ꺻ù­È¡A¯S§O¬O¦bªì¨B³]­pªº¶¥¬q¡C¦b¹ê²{¶¥¬q ¤¤¡A¯à°÷°O¦í³o­Ó·Ç«h¡A¤]¬O«Ü¦³À°§Uªº¡C ¤U­±³o­Ó«D±`µuªº©w¸q¡A¥¦°£¤FÁôÂøê°T¤§¥~¡A´X¥G¨S°µ¤°»ò¨Æ¡G

      : >BODY   ( acf -- apf )   2+ ;

³o­Ó©w¸q¤¹³\§A¤£¥Î¨Ì¿à¦r¦b¦r¨å¤¤ªº¹ê»Úµ²ºc¡A¦Ó´N¯à±N¤@­Ó"°õ¦æ½X°Ï"ªº¦a§} ¡]address of code field¡^Âà´«¬°¤@­Ó°Ñ¼Æ°Ï¦a§}¡]address of parameter field¡^¡C ¦pªG§A¦bµ{¦¡¤¤¨Ï¥Î¤F¡y2+¡z¦Ó¤£¬O¡y>BODY¡z¡A¨º»ò·íµ{¦¡»Ý­nÂಾ¨ì¤@­Ó¦rªºÀY³¡ ¡]header¡^»P¨­³¡¡]body¡^¬O¤À¶}ªº²Å¦¡¨t²Î®É¡A§A±N¥¢¥h²¾Âà©Ê¡C¡]³o¬OKim Harris ©Ò«ØÄ³ªº¤@®M¦r --¥¦³Q¥]§t¦b²Å¦¡83¼Ð·Çªº¤@­Ó¹êÅç©Ê´£Ä³¤¤[3]-- ¨ä¤¤ªº¤@­Ó¦r¡^¡C ¤U­±¬O¤@¸s¥i¯à³Q¥Î¨Ó¼g¥X¤@­Ó½s¿è¾¹µ{¦¡ªº©w¸q¡G

      : FRAME   ( -- a )   SCR @ BLOCK ;
      : CURSOR   ( --a )   R# ;
      : AT   ( -- a )   FRAME  CURSOR @ + ;

³o¤T­Ó©w¸q§Î¦¨¤F©Ò¦³¬°¤F²¾°Ê¤å¥y©Ò»Ýªº¦ì§}ªº­pºâ°ò¦¡C¸g¥Ñ¥¦­Ì¡A§A¥i¥H±N½s¿è ¤WªººtĶªk±q¹ï²Å¦¡°Ï¶ô¡]blocks¡^ªº¨Ì¿à§¹¥þ¦a¤À¶}¨Ó¡C ³o¦³¤°»ò¦n³B¡H¸U¤@¦bµo®iªº¹Lµ{¤¤¡A§A¨M©w­n«Ø¥ß¤@­Ó½s¿è½w½Ä°Ï¡A¥H«OÅ@¨Ï¥ÎªÌ ¤£¤p¤ß¥Ç¿ù®É¡A¤£·|·´±¼°Ï¶ô¤ºªº¸ê®Æ¡C§A¥u»Ý­«·s©w¸q¨ä¤¤ªº¤G­Óµü¡A©Î³\¹³³o¼Ë¡G

      CREATE FRAME   1024 ALLOT
      VARIABLE CURSOR

¨ä¾lªº½X¥i¥H§¹¥þ¤£°µ¥ô¦ó­×§ï¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ±qÅã¥Üµ²ªGªº©w¸q¤¤¡A¤À¸Ñ¥X­pºâ¥¦ªººtöªk¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¥¦¨ä¹ê¬O­ÓÄÝ©ó©î¸Ñ¤Wªº°ÝÃD¡C ³o¸Ì¦³­Ó¨Ò¤l¡C¤U­±³o­Óµü¡AŪ°µ"people-to-paths"¡A¬O¥Î¨Ó­pºâ¥X¤@¸s¤H¤§¶¡ ©Ò¦³¥i¯àªº³q°T¸ô®|ªº¼Æ¶q¡C¡]³o¬O¤@­Óµ{¦¡³]­p¤p²Õªº¸g²z¤H­û©Ò»Ý­nª¾¹Dªº¦nªF¦è ¡A³q°T¸ô®|ªº¼Æ¶q·|ÀHµÛ¨C­Ó·s²Õ­ûªº¥[¤J¦Ó§Ö³tªº¼W¥[¡C¡^

      : PEOPLE>PATHS   ( #people -- #paths )   DUP 1-  *  2/ ;

³o­Ó©w¸q¥u¬O°µ­pºâ¡C¤U­±³o­Ó"¨Ï¥ÎªÌªº©w¸q"·|©I¥s¡yPEOPLE>PATHS¡z¥h¶i¦æ­pºâ¡A µM«á¦A±Nµ²ªGÅã¥Ü¥X¨Ó¡G

      : PEOPLE   ( #people -- )   ." = "  PEOPLE>PATHS  .  ." PATHS" ;

³o´N·|²£¥Í¡G

      2 PEOPLE   = 1 PATHS
      3 PEOPLE   = 3 PATHS
      5 PEOPLE   = 10 PATHS
      10 PEOPLE  = 45 PATHS

§Y¨Ï§A»{¬°¡A§A¥u¬O­n°µ¤@­Ó¯S®íªº­pºâ¡A¦Ó¥B´N¯­¤@¦¸¦Ó¤w¡AµM«á¦A¥H¤@ºØ¤è¦¡Åã¥Ü¨ä µ²ªG¡C¬Û«H§Ú¡A§A¬O¿ùªº¡C§A±N¨ÓÁÙ¬O·|»Ý­n¦A¦^¹LÀY¨Ó¡A±N°µ­pºâªº³¡¥÷¤À¸Ñ¥X¨Ó¡C ¤]³\¬O¬°¤F­n¯à¥H¥kÃä¹ï»ôªº¤è¦¡Åã¥Ü³o­Ó¸ê®Æ¡A¤]³\¬O¬°¤F­n±Nµ²ªG°O¿ý¦b¤@­Ó¸ê®Æ®w ¤º¡A§A¤£¥i¯à¨Æ¥ýª¾¹D¡C¦ý¬O¡A¬JµM§A¦­±ß¬O­n¤À¸Ñ¥¦ªº¡A¦ó¤£¦b²Ä¤@¦¸´N°µ¹ï³o¥ó¨Æ¡C ¡]¤£­È±o¬°¤F¨º¨Ç¤Ö¼Æªº¡B¯à§K°£³o¶µ»Ý­nªº±¡ªp¡A¦Ó¤Þ¶i³oºØ³Â·Ð¡C¡^ ¡y. ¡z¬O¤@­Ó°ò¥»ªº¨Ò¤l¡C¡y.¡z¦b¤j¬ù99¢Hªº®É­Ô¡A³£¬O«Ü¤£¿ùªº¡A¦ý¬O¥¦°¸º¸¬O °µªº¤Ó¦h¤F¨Çªº¡C¨Æ¹ê¤W¡A¥¦©Ò°µªº¬O¡]¦b²Å¦¡83'¤¤¡^¡G

      : .   ( n--)   DUP ABS 0  <# #S  ROT SIGN  #>  TYPE SPACE ;

°²³]§A·Q­n±N¤@­Ó°ïÅ|¤Wªº¼Æ­ÈÂà´«¬°¤@­ÓASCII¦r¦ê¡A¨Ã¥B±N¥¦Àx¦s¦b¤@­Ó½w½Ä°Ï¤º¡A µ¥«Ýµy«á¦A¦L¥X¡C¡y.¡z·|Âà´«¥¦¡A¦ý«o¤]·|¦L¥X¥¦¡C©ÎªÌ°²³]§A­n¥H"10C"ªº®æ¦¡¨Ó½s ±Æ¯ÈµP¡A§A¤£¯à¥Î¡y.¡z¨ÓÅã¥Ü³o­Ó10¡A¦]¬°¥¦·|¦b«á­±¥[¤W¤@­ÓªÅ®æ¡C

¦b¦³¨Ç²Å¦¡¨t²Î¤¤¡A§A¯àµo²{¨ì¤@ºØ¸û¦nªº¤À¸Ñ¡G

      : (.)   ( n -- a # )   DUP ABS 0  <# #S  ROT SIGN  #> ;
      : .   ( n --)   (.) TYPE SPACE ;

§Ú­Ì¦b²Ä¥|³¹ªºÃ¹°¨¼Æ¦rªº¨Ò¤l¤¤¡Aµo²{¥t¤@­Ó¥¼¯à±N­pºâ¥\¯à¦Û¿é¥X¥\¯à¤¤¤À¸Ñ¥Xªº ¨Ò¤l¡C¦b§Ú­Ìªº¸ÑµªùØ¡A§Ú­Ì¤£¯à±N¤@­Óù°¨¼Æ¦r¦s¨ì¤@­Ó½w½Ä°Ï¤º¡A©Î¬Æ¦Ü©ó¥H¤¤ ¶¡¹ï»ôªº¤è¦¡¦L¦b¤@­ÓÄæ¦ì¤¤¡C¤@­Ó¸û¦nªº¤è¦¡¬O¨Ï¥Î¡yHOLD¡z¥N´À¡yEMIT¡z¡C¡^ ¦³®É¤]¥i¯à¬°¤F"¸ê°TÁôÂÃ"¡A¦Ó¤£¥h°µ¤À¸Ñ¡C¨Ò¦p¡A¦pªG§A¤À¸Ñ¥X³o­Ó¤ù»y

      SCR @ BLOCK

¦¨¤@­Ó©w¸q

      : FRAME   SCR @ BLOCK ;

­n°O±o¡A§A¤§©Ò¥H³o¼Ë°µ¡A¥u¦]¬°§A¬°¤F¥i¯à­n§ïÅܽs¿èªº®Ø¬[¡]editing frame¡^ªº ¦ì¸m¡C¤£­nª¼¥Øªº±N©Ò¦³³o¼Ë¥X²{ªº¤ù»y³£¥H¡yFRAME¡z¨Ó¨ú¥N¡A¦]¬°µy«á§A¥i¯à·|»Ý­n §ïÅÜ¡yFRAME¡zªº©w¸q¡A¦Óµ{¦¡¤¤¤]¦³¯u¥¿»Ý­n¨Ï¥Î¡ySCR @ BLOCK¡zªº¦a¤è¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü °²¦p¤@­Ó­«½Æ¥X²{ªº¤ù¬q¡A¦b¦³¨Ç¦a¤è¬Ý¨Ó¹³¬O·|§ïÅÜ¡A¦ý¦³¨Ç«o¤£·|ÅÜ¡A¨º»ò´N ¥u¤À¸Ñ¥X¨º¨Ç¥i¯à·|§ïÅܪº¦a¤è¡C¦pªG³o­Ó¤ù¬q¥i¯à¦³¦n´XºØ§ïÅܪº¤è¦¡¡A´N±N¥¦ ¤À¸Ñ¬°¤£¦Pªº©w¸q¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

·Q­nª¾¹D¦ó®É¸ÓÁôÂøê°T¬O»Ý­nª½Ä±©M¸gÅ窺¡C¦b§Aªº¥Í²P¤¤¸g¾ú¤F³\¦h³]­p³W®æªºÅÜ§ó ¤§«á¡A§A´N·|¾Ç¨ì¡A¨Æ±¡¦b±N¨ÓÁ`¬O¶É¦V©ó­n³Q§ïÅܪº¡C ·íµM¡A§A¬Oµ´¹ïµLªk¹w´ú¨ì¨C¥ó¨Æªº¡C°µ³o¼Ëªº¹Á¸Õ±N·|¬O®{³ÒµL¥\ªº¡A´N¦p§Ú­Ì±N ¦b«á­±ªº"¦b¹ê²{¶¥¬q¤¤ªº¤ÏÂЧ@¬°"¤@¸`¤¤©Ò¨£¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¸g¥Ñ´î¤Ö©R¥Oªº¼Æ¶q¨Ó²¤Æ©R¥Oªº¤¶­±¡]command interface¡^¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¥¦¬O¦ü«D¦Ó¬Oªº¡C¨}¦nªº¤À¸Ñ¸g±`¯à²£¥Í§ó¤Öªº¦W¦r¡C¦b²Ä¤­³¹¡A§Ú­Ì¨£¨ì6­Ó²³æªº¦W ¦r¡]¥ª¡A¥k¡A°¨¹F¡A¹qºÏ»Ö¡A¶}¡AÃö¡^¦p¦ó¨ú¥N8­Ó¤À¸Ñ¤£¨}ªº½Æ¦X¦W¦r¡C ¥t¤@­Ó¨Ò¤l¬O¡A¦b¤@­Ó­è¤Þ¶i²Å¦¡ªº³¡ªù¤¤¡A§Úµo²{¦³¤G©w¸q±u¹C¨ä¶¡¡C¥¦­Ìªº ¥Øªº¯Âºé¬O±Ð¾Ç©Ê½èªº¡A¥Î¨Ó´£¿ôµ{¦¡³]­p®v¥Ø«eªº¡yCURRENT¡z¦r·J©M¡yCONTEXT¡z¦r ·J¦U¬O­þ­Ó¡G

      : .CONTEXT   CONTEXT @  8 - NFA ID. ;
      : .CURRENT   CURRENT @  8 - NFA ID. ;

°²¦p§AÁä¤J

      .CONTEXT

¨t²Î±N¤ÏÀ³

      .CONTEXT  FORTH

¡]¥¦­Ì°Ê§@¥¿½T --¦Ü¤Ö¦b¨ºùةҨϥΪº¨t²Î¤¤¬O¦p¦¹-- ¸g¥Ñ©¹¦^§ä¨ì¦r·Jªº¦WºÙ°Ï¡A ¨Ã±N¥¦Åã¥Ü¥X¨Ó¡C¡^ ³o¬q«Ü©úÅã­«½Æªº½X¤Þ°_¤F§Úªºª`·N¡A¦]¬°¥¦¶Ç¹F¥X¤À¸Ñ¤£¨}ªº«H®§¡C§Ú­Ì¯à±N ­«½Æªº³¡¥÷°µ¦¨²Ä¤T­Ó©w¸q¡G

      : .VOCABULARY   ( pointer --)   @  8 - NFA  ID. ;

¨ÃÁYµu­ì¨Óªº©w¸q¬°¡G

      : .CONTEXT   CONTEXT .VOCABULARY ;
      : .CURRENT   CURRENT .VOCABULARY ;

¦ý¬O¡A¦b³o­Ó¤èªk¸Ì¡A³o¤G­Ó©w¸qªº°ß¤@®t§O¯­¦b©Ò­nÅã¥Üªº«ü¼Ð¤W¡C¬JµM¦nªº¤À¸ÑÀ³¸Ó ¬O²£¥Í§ó¤Öªº¡A¦Ó¤£¬O§ó¦hªº©w¸q¡A¨º»ò¡A­Y¬O¥u¦³¤@­Ó©w¸q¡AÅý¥¦¨ú±o¡yCONTEXT¡z©Î ¡yCURRENT¡z§@¬°¤Þ¼Æ¡A´N·|¤ñ¸û¦X²z¤F¡C ¬°¤F¿í´`¨ú¦n¦W¦rªº­ì«h¡A§Ú«ØÄ³¡G

      : IS   ( adr --)   @  8 - NFA  ID. ;

¥¦¤¹³\³o¼Ëªº»yªk¥X²{¡G

      CONTEXT IS  ASSEMBLER ok

©Î¡G

      CURRENT IS  FORTH ok

³Ìªìªº½u¯Á¬O­«½Æªº½X¡A¦ý³Ì«áªºµ²ªG«o¨Ó¦Û¥ø¹Ï²¤Æ©R¥Oªº¤¶­±¡C

³o¸Ì¦³¥t¤@­Ó¨Ò¤l¡CIBM PC¦³¥|ºØ¤å¦rÅã¥Ü¼Ò¦¡¡G

      40 column monochrome
      40 column color
      80 column monochrome
      80 column color

§Ú©Ò¨Ï¥Îªº²Å¦¡¨t²Î¡A´£¨Ñ¤F¡yMODE¡z³o­Óµü¡C¥¦¨ú±o¤@­Ó0¨ì3¤§¶¡ªº¤Þ¼Æ¨Ó§ïÅÜÅã¥Ü¼Ò ¦¡¡C·íµM¡A¤ù»y¡y0 MODE¡z©Î¡y1 MODE¡z¨Ã¤£¯àÅý§Ú·Q°_­þ­Ó¼Ò¦¡¬O­þ­Ó¼Ë¤l¡C ¦]¬°§Ú»Ý­n¯à¦b³o¨Ç¼Ò¦¡¤§¶¡Âà´«¡A©Ò¥H§Ú´N»Ý­n¦³¤@²Õ¤è«K¦Ó¤S¦n¥Îªºµü¡A¨Ó¹ê²{ ³o¨ÇÂà´«¡C³o¨Çµü¤]¥²¶·¯à¦P®É³]©w¤@­ÓÅܼơA¥¦¦sµÛ¥Ø«e¿Ã¾­ªº¦æ¼Æ --40©Î80¡C ¤U­±¬O¹F¨ì³o­Ó»Ý¨Dªº³Ìª½±µªº¤è¦¡¡G

      : 40-B&W     40 #COLUMNS !  0 MODE ;
      : 40-COLOR   40 #COLUMNS !  1 MODE ;
      : 80-B&W     80 #COLUMNS !  2 MODE ;
      : 80-COLOR   80 #COLUMNS !  3 MODE ;

¸g¥Ñ¤À¸Ñ¥H®ø°£­«½Æªº½X¡A§Ú­Ì´N¯à°µ¥X³o¼Ëªºª©¥»¡G

      : COL-MODE!   ( #column mode -- )   MODE  #COLUMNS ! ;
      : 40-B&W      40 0  COL-MODE! ;
      : 40-COLOR    40 1  COL-MODE! ;
      : 80-B&W      80 2  COL-MODE! ;
      : 80-COLOR    80 3  COL-MODE! ;

¦ý¬O¡A¸g¥Ñ¸ÕµÛ´î¤Ö©R¥Oªº¼Æ¥Ø¡A¤]¸g¥Ñ¸ÕµÛ®ø°£¨ººØ"¼Æ¦r«e¾É"©M"¨Ï¥Î³s¦r¸¹"ªº¦W ¦r¡A§Ú­Ì»{ÃѨì¡A¥i¥H±N¦æ¼e°µ¬°¤@­Ó°ïÅ|¤Þ¼Æ¡A¨Ã¾Ú¥H­pºâ¥X¥¦ªº¼Ò¦¡¡G

      : B&W     ( #cols --)   DUP #COLUMNS !  20 /  2-     MODE ;
      : COLOR   ( #cols --)   DUP #COLUMNS !  20 /  2-  1+ MODE ;

¦]¦¹§Ú­Ì´N¦³¤F³o¼Ëªº»yªk¡G

      40 B&W
      80 B&W
      40 COLOR
      80 COLOR

§Ú­Ì¤w±N©R¥Oªº¼Æ¥Ø¥Ñ4­Ó´î¤Ö¬°2­Ó¡C ¦ý¤´µMÁÙ¦³¤@¨Ç­«½Æªº½X¡C¦pªG§Ú­Ì¤À¸Ñ¥X³o¬q½X¡A´N¯à±o¨ì¡G

      : COL-MODE!   ( #columns chroma? -- )
         SWAP DUP #COLUMNS !  20 /  2-  +  MODE ;
      : B&W     ( #columns --)   0 COL-MODE! ;
      : COLOR   ( #columns --)   1 COL-MODE! ;

²{¦b§Ú­Ì¤w¸gÀò±o¤F¤@­Ó¸û¦nªº»yªk¡A¦P®É¤]´î¤p¤F¥Ø¦a½Xªº¤Ø¤o¡C¦b³o­Ó¨Ò¤l¤¤¡A¬Ù¥h ¤F¤G­Ó©R¥O©ÒÀò±oªº§Q¯q©Î³\¤£ºâ¤°»ò¡A¦ý­Y¬O¸û¤jªº©R¥O²Õ¡A³o­Ó¦n³B´N·|¥H´X¦ó¯Å¼Æ ªº¼W¥[¡C ³Ì«á¤@­Ó¨Ò¤l¬O¡A¦b¤@­Ó¯S§Oªº¨t²Î¤¤¡A¥Î¨Óªí¥Ü¦â±mªº¤@²Õ¦r¡C¨Ï¥Î¹³¬O"ÂŦâ" ¡B"¬õ¦â"³o¼Ëªº¦W¦r·|¤ñ¨Ï¥Î¼Æ¦r¦n¡C¸Ñµª¤§¤@¥i¯à¬O¹³³o¼Ëªº©w¸q¡G

     0 ±`¼Æ ¶Â¦â            1 ±`¼Æ ÂŦâ
     2 ±`¼Æ ºñ¦â            3 ±`¼Æ ÀQ¦â
     4 ±`¼Æ ¬õ¦â            5 ±`¼Æ ¾í¦â
     6 ±`¼Æ ´Ä¦â            7 ±`¼Æ ¦Ç¦â
     8 ±`¼Æ ·t¦Ç            9 ±`¼Æ ²HÂÅ
    10 ±`¼Æ ²Hºñ           11 ±`¼Æ ²HÀQ
    12 ±`¼Æ ²H¬õ           13 ±`¼Æ ²H¾í
    14 ±`¼Æ ¶À¦â           15 ±`¼Æ ¥Õ¦â

³o¨Ç¦â±m¯à°t¦X¹³¬O­I´º¡B«e´º¡B®Ø¬É³o¤@Ãþªºµü¤@°_¨Ï¥Î¡G

      ¥Õ¦â ­I´º          ¬õ¦â «e´º        ÂŦ⠮جÉ

¦ý³o¼Ëªº¸Ñµª»Ý­n16­Ó¦W¦r¡A¦Ó¥B¨ä¤¤«Ü¦h¬O±a¦³³s¦r²Å¸¹ªº¡]͵ù¡G«ü­^¤åªº¼gªk¡A ¦p"²HÂÅ"·|³Q¼g¦¨ LIGHT-BLUE¡^¡C¦³¿ìªk²¤Æ¶Ü¡H §Ú­Ìª`·N¨ìÃC¦â8¨ì15¬OÃC¦â0¨ì7ªº"¸û©ú«G"ªºª©¥»¡C¡]³o¤G²Õµü¦bµwÅé¤W°ß¤@ªº®t §O¯­¦b¤@­Ó"±j«×¦ì¤¸"ªº³]©w»P§_¡^¦pªG§Ú­Ì±N"«G«×"¤À¸Ñ¥X¨Ó¡A§Ú­Ì¤]³\´N¯à¦³¤U­± ³o­Ó¸Ñµª¡G

      ÅÜ¼Æ «G«×
      : ¦â±m   ( ÃC¦â -- )   «Ø³y  ³r¤J
              ¦æ¬°   ( -- ÃC¦â )   Ū¨ú  «G«× Ū¨ú  OR  0 «G«× ¦s¤J ;
      0 ¦â±m ¶Â¦â      1 ¦â±m ÂÅ¦â      2 ¦â±m ºñ¦â
      3 ¦â±m ÀQ¦â      4 ¦â±m ¬õ¦â      5 ¦â±m ¾í¦â
      6 ¦â±m ´Ä¦â      7 ¦â±m ¦Ç¦â
      : ²H   8 «G«× ¦s¤J ;

¦b³o¼Ëªº»yªk¤U¡A¡yÂŦâ¡z³o­Óµü±N¦b°ïÅ|¤W¶Ç¦^¤@­Ó"1"¡A¦ý¬O¤ù»y¡y²H ÂŦâ¡z±N·| ¶Ç¦^¤@­Ó"9"¡C¡]³o­Óºò¾Fªº¡y²H¡z·|³]©w¤@­ÓºX¼Ð¡AµM«á¥¦³Q¡y¦â±m¡z©Ò¨Ï¥Î¡A¨Ã¥B ¦A³Q²M°£¬°0¡C¡^¦pªG¯u­n¦Ò¼{¨ì¥iŪ©Ê¡A§Ú­Ì¤]³\·|©w¸q¥X¡G

       8 ¦â±m ·t¦Ç
      14 ¦â±m ¶À¦â

¦A¤@¦¸¦a¡A¸g¥Ñ³oºØ¤è¦¡¡A§Ú­Ì¤S§¹¦¨¤F¤@­Ó¸û¥O¤H´r§Öªº»yªk»P¸ûµu¤pªº¥Øªº½X¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¤£­n¬°¤F¤À¸Ñ¦Ó¤À¸Ñ¡C¨Ï¥Î­ì¥»ªº³¯µÄÀݽա]cliches¡^¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

³o­Ó¤ù»y

      OVER + SWAP

¦b¤@¨ÇÀ³¥Î¤¤«Ü±`¨£¡C¡]¥¦Âà´«¤@­Ó¦a§}»P­p¼Æ­È¬°¤@­Óµ²§ô¦a§}»P°_©l¦a§}¡A¥H¾A ¦X¡yDO LOOP¡zªºµ²ºc¨Ï¥Î¡C¡^ ¥t¤@­Ó±`¥Îªº¤ù»y¬O

      1+ SWAP

¡]¥¦±N"²Ä¤@­Ó¯Á¤Þ­È"¤Î"³Ì«á¤@­Ó¯Á¤Þ­È"ªº¶¶§Ç­«·s¦w±Æ¬°"³Ì«á¤@­Ó¯Á¤Þ­È¥[¤@" ¤Î"²Ä¤@­Ó¯Á¤Þ­È"ªº·s¶¶§Ç¡A¥H¨Ñ¡yDO¡z³o­Óµü©Ò»Ý¡C¡^ §â³o¨Ç¤ù»y¤À¸Ñ¥X¨Ó°µ¦¨¤@­Óµü¡A¹³¬O¡yRANGE¡z¡]«e­±¨º¤@­Ó¤ù»y¡^¡A¬O¦³¨Ç¥O¤H ¤ß°Ê¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
Moore»¡¡G

¨º­Ó¯S§Oªº¤ù»y¡yOVER + SWAP¡z´N«ê¦b"¬O§_­n¦¨¬°¤@­Ó¦³¥Îªºµü¡H"ªºÃä½t¤W¡C¸g ±`ªº¡A§A§â¬Y¤@¨ÇªF¦è©w¸q¦¨¤@­Óµü¡A¦Óµ²ªG¬O§A¥u¨Ï¥Î¥¦¤@¦¸¡C¦pªG§A§â³o¼Ëªº ¤@­Ó¤ù»y©w¥X¦W¦r¡A§A·|«ÜÃø°O¦í¡yRANGE¡z½T¹ê°µ¤F¤°»ò¡C¦b§Aªº¤ß¤¤¡A§A¬Ý¤£¨ì ³o­Ó¾Þ§@¡C¡yOVER + SWAP¡z¤ù»y¤ñ°_¡yRANGE¡z³o­Óµü¦³¸û¤jªº§U¾Ð©Ê¡]mnemonic value¡^¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

§ÚºÙ³oÃþ¤ù»y¬°"³¯µÄÀݽÕ"¡C¥L­ÌÂH¦b¤@°_¡A¥Hªí¥Ü¤@ºØ¦³·N¸qªº¥\¯à¡C§A¤£¥²¥h"°O¦í" ³o­Ó¤ù»y¬O¦p¦ó¤u§@ªº¡A¥u­n°O¦í¥¦°µ¤F¤°»ò´N¦n¤F¡C¦Ó¥B§A¤]¤£»Ý­n¦A¦h°O¤@­ÓÃB¥~ ªº¦W¦r¡C

½sĶ®É°Ï¤ºªº¤À¸Ñ¡]Compile-Time Factoring¡^

¦b³Ì«á³o¤@¸`¡A§Ú­Ì±NÀ˵ø«Ü¦hºØ¥Î¨Ó²Õ´µ{¦¡½X©M¸ê®Æªº§Þ¥©¡A¥H´î¤Ö­«½Æ©Ê ¡]redundance¡^¡C §Ú­Ì¤]¯à±N¦³­­­«½Æ¡]limited redundance¡^ªº­ì«h¥Î¦b½sͤW¡AÅý²Å¦¡¬°§Ú­Ì °µ¤@¨Ç·Ð¤Hªº¤u§@¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¬°¤F¯à±o¨ì³Ì¤jªº¥iºûÅ@©Ê¡A´N­n­­¨î­«½ÆªºªF¦è¡A¬Æ¦Ü¬O¦b½sĶ®É°Ï¤¤¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

°²³]¦b§Ú­ÌÀ³¥Î¤¤»Ý­nµe¥X¹³¹Ï6-1ªº9­Ó²°¤l¡C

           ¹Ï6-1  §Ú­Ì©Ò­nªºÅã¥Ü

¦b³o­Ó³]­p¤¤¡A§Ú­Ì»Ý­n±`¼Æ¨Ó¥Nªí¨C­Ó²°¤lªº¤Ø¤o¡A²°¤l¶¡ªºªÅ»Ø¡A²Ä¤@­Ó²°¤l ªº¥ª¤W¨¤®y¼Ðµ¥µ¥ªº¸ê°T¡C«Ü¦ÛµM¦a¡A§Ú­Ì¯à©w¸q¡G

      8 ±`¼Æ ²°¼e
      5 ±`¼Æ ²°°ª
      4 ±`¼Æ ¸ô¼e
      2 ±`¼Æ µó¼e

¡]µó¬°ªF¦è¦V¡F¸ô¬°«n¥_¦V¡C¡^ ²{¦b¡A¬°¤F­n©w¸q¥¦ªº¥ªÃä¬É­­¡A§Ú­Ì¤]³\¥ý¦b¤ß¤¤­pºâ¥X¥¦¡C§Ú­Ì·Q­n§â³o¨Ç²° ¤l©ñ¦b¤@­Ó80¦æ¼eªº¿Ã¹õ¤¤¶¡¦ì¸m¡C§Ú­Ì¥ý±N¥¦ªº¼e«×±q80¤¤´î¥h¡A¦A°£¥H2¥H±o¨ì¥ªÃä ¬É¡C¥þ³¡²°¤l©Ò¦ûªº¼e«×¬°

      8 + 4 + 8 + 4 + 8 = 32

¡]¤T­Ó²°¼e¥[¤W¤G±ø¸ô¼e¡^¡C (80-31) / 2 = 24. ©Ò¥H¡A§Ú­Ì«Ü¦ÛµM¦a©w¸q¡G

      24 ±`¼Æ ¥ªÃä¬É

¦P¼Ëªº¤èªk¤]¥Î¨Ó­pºâ¡y¥kÃä¬É¡z¡C ¦ý¬O¡A¸U¤@±N¨Ó§Ú­Ì»Ý­n­«·s³]­p³o­Ó¹Ï®×¡A²°¼e§ïÅܤF¡A¤]³\²°¶¡ªºªÅ»Ø¤]§ïÅÜ ¤F¡H§Ú­Ì´N­n­«·s¦A­pºâ¥XÃä¬É¡C ¦b²Å¦¡ªºÀô¹Ò¤U¡A§Y¨Ï¦b½sĶ®É°Ï¤¤¡A§Ú­Ì¤]¯à¥R¥÷¦a¹B¥Î²Å¦¡ªº¥þ³¡¯à¤O¡C¬° ¦ó¤£Åý²Å¦¡¬°§Ú­Ì°µ­pºâ©O¡H

      ²°¼e 3 *  ¸ô¼e 2 *  +  80 ¹ï½Õ - 2/  ±`¼Æ ¥ªÃä¬É
      ²°°ª 3 *  µó¼e 2 *  +  24 ¹ï½Õ - 2/  ±`¼Æ ¤WÃä¬É

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¦pªG¤@­Ó±`¼Æ­È¬O¨Ì¿àµÛ¥t¤@­Óµy¦­ªº±`¼Æ­È¡A´N§Q¥Î²Å¦¡¨Ó­pºâ¥X³o²Ä¤G­Ó­È¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

·íÀ³¥Îµ{¦¡¦b°õ¦æ®É¡A³o¨Ç­pºâ¨Ã¤£¥X²{¡A©Ò¥H°õ¦æªº³t«×¤£¨ü¼vÅT¡C ³o¸Ì¬O¥t¤@­Ó¨Ò¤l¡C¹Ï6-2ªº½X¬O¥Î¨Óµe¥X¤@­Ó¥~§Î¡Cµü¡yDRAW¡z·|¦b¡yPOINTS¡z ªí¤¤ªº¨C¤@­Óxy®y¼Ð¦ì¸m¤Wµe¤W¤@­Ó¬P¸¹¡C¡]ª`·N¡Gµü¡yXY¡z·|±N´å¼Ð©w¦ì¨ì°ïÅ|¤W ©Ò«üªº ( x y )®y¼Ð¤W¡C¡^ ª`·N¸ò¦bªí«á­±ªº¨º¤@¦æ½X¡G

      HERE POINTS -  ( /table )   2/  CONSTANT #POINTS
  ¹Ï6-2  "½sͮɰÏ"¤¤¦³­­­«½Æªº¥t¤@­Ó¨Ò¤l
      : P  ( x y --)   C,  C, ;
      CREATE POINTS
         10 10 P      10 11 P      10 12 P      10 13 P      10 14 P
         11 10 P      12 10 P      13 10 P      14 10 P
         11 12 P      12 12 P      13 12 P      14 12 P
      HERE POINTS -  ( ?table )  2/  CONSTANT #POINTS
      : @POINTS   ( i --x y )   2* POINTS +  DUP 1+ C@  SWAP C@ ;
      : DRAW   #POINTS 0 DO  I @POINTS  XY  ASCII * EMIT  LOOP ;

¤ù»y¡yHERE POINSTS -¡z¥Î¨Ó­pºâ¥Xªí®æ©Ò¥Î±¼ªº¦r¤¸¼Æ¡C±N³o­Ó­È°£¥H2¡A´N·|±o¨ìªí¤¤ªºÂIªº¼Æ¶q¡F³o­Ó­È´NÅܦ¨±`¼Æ¡y#POINTS¡z¡A³Q¡yDRAW¡z¤¤ªº¡yDO LOOP¡z©Ò¨Ï¥Î¡C
³oºØ°µªkÅý§A¯à¦bªí¤¤¥[¤J©Î§R°£¤@­ÓÂI¡A¦Ó¤£¥Î¥h­×§ïÂIªºÁ`¼Æ¡C²Å¦¡¬°§A°µ¥X³o­Ó­pºâ¡C


¸g¥Ñ©w¸q¦r¨Ó¹ê²{½sĶ®É°Ïªº¤À¸Ñ

Åý§Ú­Ì¹ï¦P¤@­Ó°ÝÃD --©w¸q¥X¤@²Õ¬ÛÃöªº¦a§}-- À˵ø¤@¨t¦Cªº°µªk¡C¤U­±¬O²Ä¤@ºØ¹Á¸Õ¡G

      HEX   01A0 CONSTANT BASE.PORT.ADDRESS
      BASE.PORT.ADDRESS CONSTANT SPEAKER
      BASE.PORT.ADDRESS 2+ CONSTANT FLIPPER-A
      BASE.PORT.ADDRESS 4 + CONSTANT FLIPPER-B
      BASE.PORT.ADDRESS 6 + CONSTANT WIN-LIGHT
      DECIMAL

³o­Ó¥D·N¬O¥¿½Tªº¡A¦ý¬O°µªk«o«ÜÃø¬Ý¡C°ß¤@§ïÅܪº¤¸¯À¬O¤@­Ó¦ì²¾­È©M­n³Q©w¸qªº°ðªº¦W¦r¡F¨ä¥¦¨C¥ó¨Æ³£¬O­«½Æªº¡C³oºØ­«½Æ©Ê«ØÄ³§Ú­Ì¨Ï¥Î¤@­Ó©w¸q¦r¡C
¤U¤@­Ó¤è¦¡ªº¥iŪ©Ê¸û°ª¡C¥¦§â©Ò¦³­«½Æªº½X²Õ¦X¦¨¤@­Ó©w¸q¦r¤¤ªº"DOES"³¡¥÷¡G

      : PORT   ( offset --)   CREATE ,
         DOES>   ( -- 'port )   @  BASE.PORT.ADDRESS + ;
      0 PORT SPEAKER
      2 PORT FLIPPER-A
      4 PORT FLIPPER-B
      6 PORT WIN-LIGHT

¦b³o­Ó¸Ñµª¤¤¡A§Ú­Ì¦b¨C¦¸©I¥s³o¨Ç¦W¦rªº®É­Ô¡A¤~¶i¦æ¦ì²¾­Èªº­pºâ¡]°õ¦æ®É°Ï¡^¡C
¦pªG§Ú­Ì¯à¦b½sͮɴN°µ³o­Ó­pºâ¡A«h°õ¦æ·|§ó¦³®Ä²v¡A¹³³o¼Ë¡G

      : PORT   ( offset -- )   BASE.PORT.ADDRESS + CONSTANT ;
         \ DOES>   ( -- 'port )
      0 PORT SPEAKER
      2 PORT FLIPPER-A
      4 PORT FLIPPER-B
      6 PORT WIN-LIGHT

¦b³o¸Ì§Ú­Ì«Ø³y¤@­Ó©w¸q¦r¡yPORT¡z¡A¥¦¦³¤@­Ó¿W¯Sªº"½sͮɰÏ"ªº¦æ¬°¡A´N¬O§â¦ì²¾­È¥[¨ì¡yBASE.PORT.ADDRESS¡z¤W¡A¨Ã¥B¥Î¥¦©w¸q¥X¤@­Ó±`¼Æ¡C
§Ú­Ì¬Æ¦Ü¥i¥H§ó¶i¤@¨B¡C°²³]¥þ³¡ªº¿é¥X¤J°ðªº¦a§}³£¬O¬Û¹jµÛ¤G­Óbyte¡C¨º»ò¦b³o­Ó¨Ò¤l¤¤¡A§Ú­Ì´N¨S¦³²z¥Ñ¥²¶·»¡¥X³o­Ó¦ì²¾­È¡C³o²Õ¨Ì§Çªº¼Æ­È

      0 2 4 6

¥»¨­´N¬O¦h¾lªº¡C
¦b¤U­±³o­Óª©¥»¡A§Ú­Ì±q°ïÅ|¤W¬O¡yBASE.PORT.ADDRESS¡z¶}©l¡C©w¸q¦r¡yPORT¡z½Æ»s³o­Ó¦a§}¡A±N¥¦©w¬°¤@­Ó±`¼Æ¡AµM«á¥[2¨ì³o­Ó¤´µM¯d¦b°ïÅ|ªº¦a§}¤W¡Aµ¹¤U¤@­Ó¿é¥X¤J°ð¨Ï¥Î¡C

      : PORT   ( 'port -- 'next-port )   DUP CREATE ,  2+ ;
         \ DOES>   ( -- 'port )
      BASE.PORT.ADDRESS
        PORT SPEAKER
        PORT FLIPPER-A
        PORT FLIPPER-B
        PORT WIN-LIGHT
      DROP   ( port.address )

ª`·N¡A¦b§Ú­Ì©w¸q²Ä¤@­Ó¿é¥X¤J°ð¤§«e¡A¥²¶·¥ý¦b°ïÅ|¤W´£¨Ñ¨º­Óªì©lªº¦a§}¡AµM«á¡A·í§Ú­Ì§¹¦¨¤F©w¸q©Ò¦³ªº¿é¥X¤J°ð¤§«á¡A¦A¥Î¡yDROP¡z°£¥h³Ì«á¤´¯d¦b°ïÅ|¤Wªº¦a§}¡C
³Ì«á¤@­Ó«ØÄ³¡C³o­Ó°ò¦°ð¡]base-port¡^ªº¦a§}¬O«Ü¦³¥i¯à·|§ïÅܪº¡A¦]¦¹À³¸Ó¥u³Q©w¸q¦b¤@­Ó¦a¤è¡C³o¨Ã¤£¬O»¡¥¦¥²¶·³Q©w¸q¦¨¤@­Ó±`¼Æ¡C¥u­n³o­Ó°ò¥»¦a§}¤£·|³Q³o­Ó°ðªºµü¶°¤§¥~¥Î¨ì¡A§Y¨Ï¥¦¬O¥H¼Æ­Èªº§ÎºA³Q°Ñ¦Ò¡A¤]¬OµLꪺ¡C


¹ê²{¶¥¬q¤¤ªº¤ÏÂЧ@¬°

¦b¥»®Ñ¤¤ªº«e­±³¡¥÷¡A§Ú­Ì°Q½×¹L¤ÏÂЧ@¬°ªº¤è¦¡¡A¯S§Oª`·N¨ì¥¦¹ï³]­p¶¥¬qªº¼vÅT¡C²{ ¦b§Ú­Ì¥¿°Q½×¨ì¹ê²{¶¥¬q¡AÅý§Ú­Ì¬Ý¬Ý³oºØ¤è¦¡¦p¦ó¯u¥¿¦a³Q¨Ï¥Î¦b¼g½X¤W¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¤@¦¸³B²z°ÝÃDªº¤@­±
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

°²³]§Ú­Ì³Q¥æ¥I¤@­Ó¼g½Xªº¤u§@¡A­n«Ø¤@­Óµü¨Óµe¥X©Î«ø°£¦bx-y®y¼Ð¤Wªº²°¤l¡C¡]³o¬O §Ú­Ì¦b"½sĶ®É°Ïªº¤À¸Ñ"¤@¸`¤¤©Ò´£¹Lªº¬Û¦P°ÝÃD¡C¡^ §Ú­Ì­º¥ý¶°¤¤ª`·N¤O¦bµe²°¤l¤W¡A¼È®É¤£­nºÞ«ø°£¥¦³o¥ó¨Æ¡C§Ú­Ì¥i¯à°µ¥X¡G

      : LAYER   WIDE  0 DO  ASCII * EMIT  LOOP ;
      : BOX   ( upper-left-x  upper-left-y -- )
         HIGH  0 DO  2DUP  I +  XY LAYER  LOOP  2DROP ;

¦b¸g¹L´ú¸Õ¨Ã½T©w¥¦¯à¥¿±`¤u§@¤§«á¡A§Ú­Ì²{¦bÂà¦V¦p¦ó¨Ï¥Î¬Û¦Pªº½X¨ÓÀ¿«ø²°¤lªº°ÝÃD ¤W¡C³o­Óµª®×¬O²³æªº¡G§Ú­Ì¥u­n±N°e¥Xªº½X¥Ñ¤@­Ó¬P¸¹§ï¬°¤@­ÓªÅ¥Õ´N¥i¥H¤F¡C³o»Ý ­n¼W¥[¤@­ÓÅܼƩM¤@¨Ç³]©w¥¦¤º®eªºµü¡C©Ò¥H¡G

      VARIABLE INK
      : DRAW   ASCII *  INK ! ;
      : UNDRAW   BL INK ! ;
      : LAYER   WIDTH  0 DO  INK @ EMIT  LOOP ;

BOX ªº©w¸q¡A©MÀ³¥Îµ{¦¡¤¤ªº³Ñ¾l³¡¥÷¡A³£«O«ù¤£ÅÜ¡C ³o­Ó¤è¦¡¤¹³\¤U­±ªº»yªk

      ( x y )   DRAW BOX
 ~FB7BB1; ©Î~I;
      ( x y )   UNDRAW BOX

¸g¥Ñ±q¤@­Ó©ú½Tªº­ÈÂàÅܬ°¤@­Ó¥]§tµÛ¤@­Ó­ÈªºÅܼơA§Ú­Ì¼W¥[¤F¤@¼hªº¶¡±µ¡]a level of indirection¡^¡C¦b³o­Ó¨Ò¤l¡A§Ú­Ì"¤Ï¦V"¦a¥[¤W¤F³o¼h¶¡±µ¡A¤]´N¬O¦b¡yLAYER¡zªº ©w¸q¤¤¥[¤W¤@¼h·sªº½ÆÂø©Ê¡A¦Ó¤£¬O¼W¥[³o­Ó©w¸qªºªø«×¡C ¸g¥Ñ¤@¦¸¥u­P¤O©ó¤@­Ó°ÝÃD­±¤W¡A§A´N¯à§ó¦³®Ä²vªº¸Ñ¨M°ÝÃDªº¨C­Ó­±¬Û¡C¦pªG§A ªº·Qªkùئ³­Ó¿ù»~¡A¥¦´N¤£·|³Q¨º¨Ç©|¥½¸g´ú¸Õ¤ÎÅçµýªº¥t¤@­±¬Ûªº½X©Ò±»»\¡A¦]¦Ó¤] ´N¯à¸û®e©ö¦a³Qµo²{¥X¨Ó¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¤£­n¤@¦¸§ï¥¿¤Ó¦h¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

·í§A¦b½s¿è§AªºÀ³¥Îµ{¦¡®É --¥[¤W¤@­Ó·sªº¥\¯à©ÎªÌ­×¥¿¤@¨Ç¦a¤è-- ¸g±`·|³Q»¤´b µÛ¤@¦¸´N§â¥¦­Ì¦P®É³£°µ§¹©Î§ï¥¿¹L¨Ó¡C§Ú­Ìªº©¾§i¬O¡G¤£­n³o¼Ë°µ¡C ¦b¨C­Ó¡u½s¿è--½sĶ¡vªº´`Àô¤¤¡A¦b§A¯à±µ¨üªº½d³ò¤º¡A¾¨¥i¯à¦a¤Ö°µ§ïÅÜ¡C¦b§A Ä~Äò¤U¤@¨B¤§«e¡A­n½T©w´ú¸Õ¹L¤F¨C­Ó­×¥¿«áªºª©¥»¡C§A·|Åå³Y¡A¦b°µ¤F¤T­Ó¬Ý¦ü²³æªº ­×§ï¡A¦A­«·s½sͤ§«á¡A³ºµMµo²{¨S¦³¤@­Ó¬O¯à¥¿½T¤u§@ªº¡A¦Ó³oºØ±¡ªp«o¸g±`ªºµo ¥Í¡C ¤@¦¸¥u°µ¤@­Ó§ïÅÜ¡A´N¯à«Oµý·í¨Æ±¡¤£¹ïªº®É­Ô¡A§Aª¾¹D­ì¦]¦ó¦b¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¤£­n¹Á¸ÕµÛ¤Ó¦­¥h¹w³]¤À¸Ñªº¤è¦¡¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¦³¨Ç¤H©_©Ç¬°¤°»ò¤j³¡¥÷ªº²Å¦¡¨t²Î³£¨S¦³©w¸q¤@­Ó°}¦Cªºµü¡C³o±ø³W«h´N¬O²z¥Ñ¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
Moore»¡¡G

§Ú¸g±`¦³°}¦C³oºØµ¥¯ÅªºªF¦è¡C³Ì²³æªº°}¦C¥u¬O¥I¤©¤@­Ó¦a§}¤@­Ó¼Ð°O¡A¦Ó³o­Ó ¼Ð°O·|¶Ç¦^³o­Ó¦a§}µ¹§A¡C§A¯à¹³¤U­±³o¼Ë¦a©w¸q¥X¤@­Ó°}¦C

      CREATE X  100 ALLOT

µM«á»¡

      X +

©ÎªÌ§A¯à»¡

      : X   X + ;

³Ì§xÂZ§Úªº¤@­Ó°ÝÃD¬O¡A¬O§_­È±o¬°¨º­Ó¯S§Oªº¸ê®Æµ²ºc°µ¥X¤@­Ó©w¸q¦r¨Ó¡H§Ú·| ¦³¨¬°÷¦hªº¦a¤è¨Ó¨Ï¥Î¥¦¡A¦Ó¨Ï§Ú¨º¦h¥I¥Xªº¤u§@Åܪº­È±o¶Ü¡H §Ú«ÜÃø¨Æ¥ýª¾¹D±N¨Ó¬O§_·|»Ý­n¶W¹L¤@­Ó¥H¤Wªº°}¦C¡C©Ò¥H¡A³q±`§Ú¨Ã¤£©w¸q ARRAY ³o­Ó¦r¡C ·í§Úµo²{§Ú»Ý­n¤G­Ó°}¦C¤§«á¡A°ÝÃD´N¦bÃä½t¤W¤F¡C °²¦p§Ú»Ý­n¤T­Ó¡A¨º»òµª®×´N«Ü²M·¡¤F¡C°£«D¥L­Ì¬O¤£¦Pªº¡C¦Ó¸g±`¦a¡A¥L­Ì«o¯u ¬O¤£¦Pªº¡C§A¥i¯à»Ý­n¥¦¬°§A¨ú±o¤º®e¡A§A¤]¥i¯à»Ý­n¦r¤¸ªº°}¦C¡A©Î¦ì¤¸ªº °}¦C¡C§A¥i¯à·Q­n°µ¤W¤U­­ªºÀˬd¡A©Î¦s¤U¥¦¥Ø«eªºªø«×¥H«K§A¯à¥[¤WªF¦è¨ì¥¦ªº §ÀºÝ¡C §Ú«rºò¤ú®Ú¨Ã¥B»¡¡A¡u§ÚÀ³¸Ó±N³o­Ó¦r¤¸°}¦C°µ¦¨¤@­Ó­M¤¸¡]cell¡^°}¦C¡A¥H«K¯à Åý³o­Ó¸ê®Æµ²ºc¾A¥Î©ó§Ú²{¦b¤w¸g¦³ªºµü¶Ü¡H¡v °ÝÃD·U½ÆÂø¡A§A´N·U¤£®e©ö§ä¨ì¤@­Ó¯à¾A¥Îªº¤@ºØ³q¥Î«¬ªº¸ê®Æµ²ºc¡C¤@­Ó¯u¥¿ ½ÆÂøªº¸ê®Æµ²ºc¡A¯à°÷³Q´¶¹M¦a¨Ï¥ÎµÛªº¾÷·|¬O«Ü¤pªº¡C¤@­Ó¦¨¥\ªº³oºØ¨Ò ¤l¬O²Å¦¡ªºµü¨å¡C¥¦ªºµ²ºc°í©T¡A¤S«Ü¦³¼u©Ê¡C¥¦¦b²Å¦¡¸Ì¨ì³B³Q¨Ï¥ÎµÛ¡C¦ý¬O³o ºØ¨Ò¤l²¦³º¤Ö¨£¡C ¦pªG§A¿ï¾Ü¥h°µ¥X°}¦Cªº©w¸q¦r¡A¨ä¹ê§A´N¬O§¹¦¨¤F¤@­Ó¤À¸Ñªº¨BÆJ¡C§A¤w¸g±q±N¨Ó ©Ò¦³·|¥]§t°}¦Cªº¦r¤¤¡A¤À¸Ñ¥X°}¦C³o­Ó·§©À¡C§A¤w¸g¨ì¹F¤F¥t¤@¼h¦¸ªº©â¶H¡C «Ø³y©â¶Hªº¼h¦¸¬O¤@ºØ°ÊºAªº¹Lµ{¡A¥¦¤£¬O§A¯à¨Æ¥ý¹wª¾ªº¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ¤µ¤Ñ¡AÅý¥¦¯à¤u§@¡C©ú¤Ñ¡A¦A±N¥¦³Ì¨Î¤Æ¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
¦b¦³¤@¤Ñ©MMooreªº­±½Í¤¤¡A¨º®É¥L¤w¸g§¹¦¨¤F¤@­Ó¹q¸ôªO¯Å¡]board level¡^ªº²Å¦¡ ¹q¸£ªº³]­p¡A¥¦¨Ï¥Î¤@¯ë¥«­±¤W²{¦¨¥i¥ÎªºIC¨Ó²Õ¦¨¡C°µ¬°³]­p¨º¤ùªO¤lªº¤u¨ã½cªº ¤@³¡¥÷¡A¥L¥Î²Å¦¡«Ø¤F¤@­Ó¼ÒÀÀ¾¹¡A¨Ó´ú¸ÕªO¤l¤WªºÅÞ¿è¹q¸ô¡G

ª½¨ì³o­Ó¦­¤W§Ú¤~»{ÃѨì¡A§Ú¤@ª½±N"¹ï´¹¤ùªº´y­z"»P"¹ï³o¨Ç´¹¤ù¦bªO¤l¤Wªº°t¸m ªº´y­z"²V¦b¤@°_¡C¦b·í®É¡A¥¦«D±`ªº¤è«K©ó¥Î¨Ó¹F¨ì§Úªº¥Øªº¡A¦ý¬O·í§Ú­n¦b¥t¤@ ¤ùªO¤l¤W¨Ï¥Î³o¨Ç¬Û¦Pªº´¹¤ù®É¡A¤~µo²{¨ì§Ú§â¨Æ±¡¦w±Æªº«ÜÁV¡C §ÚÀ³¸Ó±N¹ï´¹¤ùªº´y­z»P¹ï´¹¤ùªº¨Ï¥Î¤À¸Ñ¨ì¤£¦Pªº¦a¤è¡C³o¼Ë§Ú´N·|¦³¤@­Ó´¹¤ù ´y­z»y¨¥¤F¡C¦n§a¡A¤]³\¬O¦]¬°·í§Ú¥¿¦b°µ³o¥ó¨Æªº®É­Ô¡A§Ú¹ï¨ººØ¼h¦¸ªº³Ì¨Î¤Æ ¨Ã¤£·P¿³½ì¡C §Y¨Ï«á¨Ó³o­Ó©ÀÀY´¿¸g¥X²{¹L¡A§Ú¤]¥i¯à·|»¡¡G¡uÅý§Ú±ß¤@ÂI¦A¥h°µ³o¥ó¨Æ¡v¡A µM«á´N§ë¤J¨ì§Ú¥¿¦b°µªº¨Æ±¡·í¤¤¡C¦b¨º®É¡A³Ì¨Î¤Æ¹ï§Ú¨Ó»¡¨Ã¤£¬O³Ì­«­nªº¡C ·íµM¡A§Ú·|¸ÕµÛ°µ¥X¨}¦nªº¤À¸Ñ¡C¦ý¬O¡A¦pªG¦b¨º®ÉÁ٬ݤ£¥X­Ó¦n¤èªk¡A§Ú´N·|»¡ ¡G¡u¥ýÅý¥¦¯à¤u§@¦A»¡¡v¡C §Ú¨Ã¤£¬OÃi´k¡A§Ú¥u¬Oª¾¹D±N¨Ó·|¦³¤@¨ÇªF¦è¥H¬YºØ¤è¦¡¨Ó¼vÅT³o­Ó¨M©w¡A¦Ó«ç»ò ¼vÅT«o¬O§Ú²{¦bµLªk¹wª¾ªº¡C²{¦b´N¸ÕµÛ³Ì¨Î¤Æ¬O·MÄøªº¡C°£«D¾ã­Ó±¡ªp²M·¡¦a ¥X²{¦b§Ú­±«e¡A§Ú¬OµLªkª¾¹D¨º­Ó³Ì¨Î¤ÆÀ³¸Ó¬O¤°»ò¼Ë¤lªº¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

¦b³o¤@¸`¤¤©Ò°µªº³o¨ÇÆ[¹î¡A¬O¤£·|»P¦b³o¤§«e©Ò½Í½×ªº¸ê°TÁôÂéM¹w´ú±N¨Ó·|§ïÅܪº ¤¸¯À³o¨Ç¨Æ¬Û½Ä¬ðªº¡C¤@­Ó¦nªºµ{¦¡³]­p®v·|¤£Â_¦a¹Á¸Õ¥­¿Å©ó¡u¥ýªá¶O®É¶¡¨Ó«Øºc¥X ¨ã¦³±µ¨üÅܤƩʪº¨Æª«¡v©M¡u¥H«á¦pªG¦³»Ý­n¡A¦Aªá¶O®É¶¡¨Ó­×§ï¥¦¡v³o¤GºØ¿ï¾Ü¤W¡C °µ³o¨Ç¨M©w»Ý­n¸gÅç¡C¦ý¬O¡A°µ¬°¤@­Ó¤@¯ë©Êªº³W«h¡G

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü ­n¸g¥Ñ²Õ´¸ê°T¡]organizing information¡^¨Ó¹w´ú¥i¯à·|Åܤƪº¨Æª«¡A¦Ó¤£¬O¥H¼W ¥[½ÆÂø«×¨Ó¹F¦¨¡C¥u¦³¦b¬°¤F¨Ï¥Ø«eªº¤ÏÂжg´Á¯à¥¿½T¤u§@ªº»Ý­n¤U¡A¤~¯à¼W¥[½Æ Âø«×¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w

µ²»y

¥»³¹¤¤§Ú­Ì°Q½×¤F¤À¸Ñ¦]¤l©Ò¨Ï¥Îªº¦UºØ§Þ¥©©M·Ç«h¡C¤]À˵ø¤F¤ÏÂЧ@¬°ªº¤è¦¡¦p¦óÀ³ ¥Î¦b¹ê²{¶¥¬q¤¤¡C
°Ñ¦Ò®ÑÄy

1. W.P. Stevens, G.J. Myerg, and L.L. Constantine, IBM Systems Journal, vol. 13, no. 2, 1974, Copyright 1974 by Intermltional Buginess Machines Corporation.

2. G.A. Miller, "The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing.Information," Psychol. Rev., vol. 63, pp. 81-97, Mar. 1956.

3. Kim R. Harris, "Definition Field Address C,onversion Operators," FORTH-83 Standard, FORTH Standardg Team.

¡@