home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / doc / f_pcglos.txt < prev    next >
Text File  |  1989-10-16  |  202KB  |  5,810 lines

  1.  Word Glossary of the F-PC Forth Vocabulary              by Tom Zimmer
  2.  
  3. ****************************** Notice *************************************
  4. *  10/16/89     T. Zimmer                                                 *
  5. *  As of this release, this glossary contains all of the words that are   *
  6. * going to be documented in F-PC, BUT! Not all of the words have glossary *
  7. * entries entered, so you will find some words that specify only a word   *
  8. * name, followed by a vocabulary name. This file is still in the process  *
  9. * of being updated.                                                       *
  10. *                                                                         *
  11. ***************************************************************************
  12.  
  13.  Forward
  14.  
  15.    This glossary contains entries for all of the words in F-PC's FORTH
  16.  vocabulary, broken into two major sections.  The first section contains
  17.  lists of words broken into catagories.  The second section contains the
  18.  same words grouped in a single alphabetized list.  The alphabetized
  19.  list includes a stack picuture, the filename where the words source can
  20.  be found, and descriptive text explaining the function of each word in
  21.  the list.  The catagory section contains only a list of words in a
  22.  catagory, and a stack picture for each word.
  23.  
  24.  Glossary Format
  25.  
  26.    The format of this glossary uses abreviated character sequences to
  27.  describe a series of words, this is done primarily for brevity.  Here
  28.  is a list of the abreviations used in this glossary.
  29.  
  30.  Symbol definitions used in this Glossary
  31.  
  32.         n1          16 bit signed number
  33.         d1          32 bit signed number
  34.         u1          16 bit unsigned number
  35.         ud1         32 bit unsigned number
  36.         f1          boolean flag
  37.         c1           8 bit character
  38.         nfa         Name field address
  39.         cfa         code field address
  40.         lfa         link field address
  41.         seg         16 bit absolute segment number
  42.         offset      16 bit offset into a segment
  43.         <char>      A character from the input stream.
  44.         <name>      A Forth word, comes from the input stream.
  45.         <string>    A sequence of ascii characters, comes from the
  46.                     input stream.
  47.         <filespec>  Standard DOS file specification
  48.         |           seperator for stack parameters and input stream
  49.                     parameters.
  50.  
  51.  
  52.  Glossary entries in the alphabetized section are in the following format:
  53.  
  54.  Example:
  55.  
  56.  WORD            ( c1 | <string> --- a1 )        FILE_WHERE_FOUND
  57.         DESCRIPTIVE_TEXT: The character c1 is passed into WORD on the data
  58.         stack, <string> is passed to WORD from the input stream, and a1 is
  59.         returned by WORD on the data stack.
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  ----------------------  Operators by Catagory  -------------------------
  67.  
  68.    This section contains the list of available word separated into catagory
  69.  or use. This section is most useful when you know what you want to do but
  70.  don't know what the word name is that does the function you want.  the
  71.  words of F-PC have been broken into catagories, here is a list of those
  72.  catagories:
  73.  
  74.  
  75.  Catagory Titles
  76.  
  77.  
  78.         Compiling and Allocation words
  79.         Conditional Test & Compilation words
  80.         Defining and Related Words
  81.         Dictionary Field Manipulation words
  82.         DOS Interface words
  83.         File Manipulation words
  84.         Math words
  85.         Memory words for VARIABLES and ARRAYS in CODE space
  86.         Memory words for VALUES
  87.         Memory Manipulation words for External memory and Ports
  88.         Menu Building words
  89.         Mode Control and Associated words
  90.         Number Conversion & Output words
  91.         Printing Related words
  92.         Stack Manipulation words
  93.         Status Testing and Error Condition Handling words
  94.         String Manipulation and Output words
  95.         System words
  96.         Terminal Input & Output words
  97.         Timing Related words
  98.         Utility words
  99.         VIEW Manipulation words
  100.         Window Control words
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  Here then is the words contained in each catagory along with their stack
  122.  picture.  For detailed information on a particular function examine its
  123.  entry in the alphabetized section.
  124.  
  125.  
  126.  Compiling and Allocation words
  127.  
  128.  
  129.     ALIGN       ( --- )
  130.     ALLOT       ( n1 --- )              ASCII       ( | <char> --- c1 )
  131.     C,          ( c1 --- )              DEFERS      ( <name> --- )
  132.     DLITERAL    ( d# -- )               DP          ( --- a1 )
  133.     LITERAL     ( n1 -- )               NEWINFO     ( --- )
  134.     X,          ( n1 --- )              X,"         ( | <string>" --- )
  135.     X>"BUF      ( --- "BUF )            XC,         ( n1 --- )
  136.     XDP         ( --- a1 )              XDPSEG      ( --- a1 )
  137.     XHERE       ( --- seg n1 )          Y!          ( n1 a1 --- )
  138.     Y,          ( n1 --- )              Y@          ( a1 --- n1 )
  139.     YC!         ( n1 a1 --- )           YC@         ( a1 --- n1 )
  140.     YCOUNT      ( a1 --- a2 n1 )        YCSET       ( byte a1 --- )
  141.     YDP         ( --- a1 )              YHASH  ( yname vocaddr --- thread )
  142.     YHERE       ( --- a1 )              YS:         ( a1 --- yseg a1 )
  143.     YSEG        ( -- a1 )               YSTART      ( --- a1 )
  144.     [           ( -- )                  [']         ( | <name> -- )
  145.     [COMPILE]   ( | <name> -- )         \           ( -- )
  146.     \S          ( n1 --- )              \UNLESS     ( | <name> --- )
  147.     ]           ( -- )                  `           ( command --- )
  148.  
  149.  
  150.  Conditional Test & Compilation words
  151.  
  152.  
  153.     #ELSE       ( --- )                 #ENDIF      ( --- )
  154.     #THEN       ( --- )                 #IF         ( f1 --- )
  155.     +LOOP       ( n1 --- )              0<          ( n1 --- f1 )
  156.     0<=         ( n1 --- f1 )           0<>         ( n1 --- f1 )
  157.     0=          ( n1 --- f1 )           0>          ( n1 --- f1 )
  158.     0>=         ( n1 --- f1 )           <           ( n1 n2 --- f1 )
  159.     <=          ( n1 n2 --- f1 )        <>          ( n1 n2 --- f1 )
  160.     =           ( n1 n2 --- f1 )        >           ( n1 n2 --- f1 )
  161.     >=          ( n1 n2 --- f1 )        >MARK       ( --- a1 )
  162.     >RESOLVE    ( a1 --- )              ?<MARK      ( --- f1 a1 )
  163.     ?<RESOLVE   ( f1 a1 --- )           ?>MARK      ( --- f1 a1 )
  164.     ?>RESOLVE   ( f1 a1 --- )           ?BRANCH     ( f1 --- )
  165.     ?DO         ( limit start --- )     ?EXIT       ( f1 --- )
  166.     ?LEAVE      ( f1 --- )              ?UNTIL      ( f1 --- )
  167.     ?WHILE      ( f1 --- )              AGAIN       ( --- )
  168.     AND         ( n1 n2 --- n3 )        BEGIN       ( --- )
  169.     BETWEEN     ( n1 n2 n3 --- f1 )     BOUNDS      ( a1 n1 --- a2 a3 )
  170.     BRANCH      ( --- )                 CASE        ( -- )
  171.     D0=         ( d1 --- f1 )           D<          ( d1 d2 --- f1 )
  172.     D=          ( d1 d2 --- f1 )        D>          ( d1 d2 --- f1 )
  173.     DMAX        ( d1 d2 --- d3 )        DMIN        ( d1 d2 --- d3 )
  174.     DNEGATE     ( d1 d2 --- d3 )        DO          ( limit start -- )
  175.     DU<         ( d1 d2 --- f1 )        ELSE        ( --- )
  176.     ENDCASE     ( -- )                  ENDOF       ( -- )
  177.     EXIT        ( --- )                 FALSE       ( --- f1 )
  178.     I           ( --- n1 )              IF          ( f1 -- )
  179.     J           ( --- n1 )              LEAVE       ( -- )
  180.     LOOP        ( -- )                  NOT         ( n1 --- n2 )
  181.     NRESOLVE    ( 0 n1 n2 ... n -- )    OF    ( n1 n2 -- n1 )  ( n1 n1 -- )
  182.     OR          ( n1 n2 --- n3 )        RECURSE     ( -- )
  183.     RECURSIVE   ( -- )  immediate       REPEAT      ( -- )
  184.     THEN        ( -- )                  TRUE        ( --- f1 )
  185.     U<          ( n1 n2 --- f1 )        U<=         ( un1 un2 --- f1 )
  186.     U>          ( n1 n2 --- f1 )        U>=         ( n1 n2 --- f1 )
  187.     UNDO        ( --- )                 UNNEST      ( --- )
  188.     UNTIL       ( f1 -- )               WHILE       ( f1 -- )
  189.     WITHIN      ( n1 n2 --- f1 )        XOR         ( n1 n2 --- n3 )
  190.  
  191.  
  192.  Defining and Related Words
  193.  
  194.  
  195.     2CONSTANT   ( d1 | <name> --- )     2VARIABLE   ( | <name> --- )
  196.     :           ( | <name> ... ; --- )  ;           ( --- )
  197.     ;CODE       ( --- )                 ;USES       ( --- )
  198.     ALIAS       ( a1 | <name> --- )     ANEW        ( | <name> --- )
  199.     CODE        ( | <name> --- )        CONSTANT    ( n1 | <name> -- )
  200.     CREATE      ( | <name> -- )         DEFER       ( | <name> -- )
  201.     DEFINED     ( -- here 0 | a1 true ) DEFINITIONS ( -- )
  202.     DOES>       ( -- )                  EXEC:       ( n1 -- )
  203.     EXECUTE     ( a1 --- )              HEADER      ( | <name> -- )
  204.     HIDE        ( -- )                  IMMEDIATE   ( -- )
  205.     IS          ( cfa -- )              LABEL       ( --- a1 )
  206.     PERFORM     ( a1 --- )              REVEAL      ( -- )
  207.     VALUE       ( n1 | <name> --- )     VARIABLE    ( | <name> -- )
  208.     WIDTH       ( --- a1 )
  209.  
  210.  
  211.  Dictionary Field Manipulation words
  212.  
  213.  
  214.     .ID         ( nfa --- )             >BODY       ( cfa --- pfa )
  215.     >LINK       ( cfa --- lfa )         >NAME       ( cfa --- nfa )
  216.     >VIEW       ( cfa --- vfa )         BODY>       ( cfa --- cfa )
  217.     L>NAME      ( lfa -- nfa )          LINK>       ( lfa -- cfa )
  218.     N>LINK      ( nfa -- lfa)           NAME>       ( nfa -- cfa )
  219.     NAME>PAD    ( A1 --- PAD )          TRAVERSE  ( a1 direction -- addr' )
  220.     VIEW>       ( vfa -- cfa )
  221.  
  222.  
  223.  DOS Interface words
  224.  
  225.  
  226.     A:          ( --- )                 B:          ( --- )
  227.     C:          ( --- )                 ALLOC ( n1 --- n2 n3 n4 )
  228.     CD          ( | <filespec> --- )
  229.     CHDIR       ( | <filespec> --- )    COMSPEC$    ( --- a1 )
  230.     COMSPEC@    ( --- )                 COPY        ( <filespec> --- )
  231.     D:          ( --- )                 DEALLOC     ( n1 --- f1 )
  232.     DEL         ( <filespec> --- )      DIR         ( <filespec> --- )
  233.     DOS-LINE    ( --- a1 )              DOS>TIB     ( --- )
  234.     DOSVER      ( --- n1 )              DRIVE?      ( --- n1 )
  235.     ENVSIZE     ( --- n1 )              EVSEG       ( --- n1 )
  236.     FINDFIRST   ( string --- f1 )       FINDNEXT    ( --- f1 )
  237.     ME$         ( --- a1 )              ME@         ( --- )
  238.     PATH$       ( --- a1 )              PATH@       ( --- )
  239.     PATHHNDL    ( --- a1 )              PATHSET     ( handle --- f1 )
  240.     REN         ( <filespec> --- )      RENAME      ( | <filespec> --- )
  241.     SELECT      ( n1 --- )              SET-DTA     ( a1 --- )
  242.     SETBLOCK    ( seg size --- f1 )     SYS         ( | command --- )
  243.  
  244.  
  245.  File Manipulation words
  246.  
  247.  
  248.     !HCB        ( a1 | <name> --- )     $>HANDLE    ( a1 handle --- )
  249.     $HOPEN      ( a1 --- f1 )           $PFILE      ( a1 --- f1 )
  250.     $FLOAD      ( a1 --- f1 )           .CURFILE    ( --- )
  251.     .FILE       ( --- )                 .FILES      ( --- )
  252.     .LOADED     ( --- )                 .SEQHANDLE  ( --- )
  253.     >ATTRIB     ( handle --- attrib-a1 )
  254.     >LINE       ( n1 --- )
  255.     >NAM ( handle --- name-string-a1 )
  256.     >HNDLE      ( handle --- handle-a1 )
  257.     ?DRIVE.EXTRACT ( handle --- drive-n1 )
  258.     ?DRIVE.PREPEND ( drive-n1 handle --- )
  259.     ?FILEOPEN   ( --- )
  260.     ?PREPEND.VPATH ( a1 --- a1 )        B/HCB       ( --- n1 )
  261.     CHARREAD    ( --- c1 )              CLOSE       ( --- )
  262.     CLR-HCB     ( a1 --- )              CURPOINTER ( handle --- d1-current )
  263.     DEFEXT      ( --- a1 )
  264.     ENDFILE    ( handle --- double-end )
  265.     EXHREAD     ( a1 n1 hndl seg1 --- n2 )
  266.     EXHWRITE    ( a1 n1 hndl seg1 --- )
  267.     FCB>HANDLE  ( a1 a2 --- )           FILE        ( | <name> --- )
  268.     FILE>TIB    ( a1 --- )              FILEPOINTER ( --- a1 )
  269.     FILES       ( --- )                 FILLBUFF    ( --- )
  270.     FILLTIB     ( --- )                 FL          ( | <name> --- )
  271.     FLHNDL      ( --- a1 )              FLOAD       ( | <name> --- )
  272.     GET_ALINE   ( --- )                 GFL         ( | <name> --- )
  273.     HANDLE      ( | <name> --- )        HANDLE>EXT  ( a1 --- a2 )
  274.     HCLOSE      ( handle --- f1 )       HCREATE   ( handle --- error-code )
  275.     HDELETE     ( handle --- f1 )
  276.     HNDLS       ( --- a1 )
  277.     HOPEN       ( handle --- error-code )
  278.     HREAD       ( a1 n1 handle --- n2 )
  279.     HRENAME     ( handle1 handle2 --- return-code )
  280.     HWRITE      ( a1 n1 handle --- n2 )
  281.     IBLEN       ( --- n1 )              IBRESET     ( --- )
  282.     INCLUDE     ( | <name> --- )        LINEREAD    ( --- a1 )
  283.     LOAD        ( n1 --- )              LOADED,     ( --- )
  284.     LOADER      ( --- )                 LOADING     ( --- a1 )
  285.     LOADSTAT    ( --- )                 MOVEPOINTER ( d1-offset handle --- )
  286.     NEEDS       ( | <name> --- )        NEWFILE     ( | <name> --- )
  287.     OBLEN       ( --- n1 )              OK          ( --- )
  288.     OPEN        ( | <name> --- )        OUTBUF      ( --- a1 )
  289.     PREPEND.PATH( handle --- f1 )       RWERR       ( --- a1 )
  290.     RWMODE      ( --- a1 )              SAVEPOINTER ( --- )
  291.     SEEK        ( d1 --- )              SEQDOWN     ( --- )
  292.     SEQHANDLE+  ( --- a1 )              SEQHANDLE   ( --- a1 )
  293.     SEQUP       ( --- )
  294.  
  295.  
  296.  Math words
  297.  
  298.  
  299.     *           ( n1 n2 --- n3 )        */      ( n1 n2 n3 --- quotient )
  300.     */MOD       ( n1 n2 n3 --- n4 n5 )
  301.     *D          ( n1 n2 --- d1 )        +       ( n1 n2 --- n3 )
  302.     /           ( n1 n2 --- n3 )        /MOD    ( n1 n2 --- n3 n4 )
  303.     1+          ( n1 --- n2 )           1-      ( n1 --- n2 )
  304.     2*          ( n1 --- n2 )           2+      ( n1 --- n2 )
  305.     2-          ( n1 --- n2 )           2/      ( n1 --- n2 )
  306.     8*          ( n1 --- n2 )           D+          ( d1 d2 --- d3 )
  307.     D-          ( d1 d2 --- d3 )        D2*         ( d1 --- d2 )
  308.     D2/         ( d1 --- d2 )           DABS        ( d1 --- d2 )
  309.     M/MOD       ( d1 n1 --- rem quot )  MAX         ( n1 n2 --- n3 )
  310.     MIN         ( n1 n2 --- n3 )        MOD         ( num den -- modulus )
  311.     MU/MOD      ( d1 n1 --- rem dquot ) NEGATE      ( n1 --- n2 )
  312.     U16/        ( n1 --- n2 )           U2/         ( n1 --- n2 )
  313.     UM*         ( un1 un2 -- ud )       UM/MOD      ( ud un --- urem uquot )
  314.  
  315.  
  316.  Memory words for VARIABLES and ARRAYS in CODE space
  317.  
  318.  
  319.     !           ( n1 a1 --- )           +!        ( n1 a1 --- )
  320.     ,           ( n1 --- )              -         ( n1 n2 --- n3 )
  321.     -1!         ( a1 --- )              0!        ( a1 --- )
  322.     2!          ( d1 a1 --- )           2+!       ( d1 a1 --- )
  323.     2@          ( a1 --- d1 )           @         ( a1 --- n1 )
  324.     @L          ( seg a1 --- n1 )       @REL>ABS  ( cfa --- a1 )
  325.     BLANK       ( a1 n1 --- )           C!        ( c1 a1 --- )
  326.     C+!         ( c1 a1 --- )           C@        ( a1 --- c1 )
  327.     CAPS-COMP   ( a1 a2 n1 --- f1 )     CMOVE       ( a1 a2 n1 --- )
  328.     CMOVE>      ( a1 a2 n1 --- )        COMP        ( a1 a2 n1 --- f1 )
  329.     COMPARE     ( a1 a2 n1 --- f1 )     COUNT       ( a1 --- a2 n1 )
  330.     CRESET      ( n1 a1 --- )           CSET        ( n1 a1 --- )
  331.     CTOGGLE     ( a1 n1 --- )           DECR        ( a1 -- )
  332.     ERASE       ( a1 n1 --- )           EVEN        ( -- )
  333.     FILL        ( a1 n1 c1 --- )        INCR        ( a1 -- )
  334.     LARGEST     ( a1 n1 --- a2 n2 )     LENGTH      ( a1 --- a2 n1 )
  335.     MOVE        ( a1 a2 n1 --- )        OFF         ( a1 --- )
  336.     ON          ( a1 --- )              SCAN        ( a1 n1 c1 --- )
  337.     SCANW       ( a1 w1 w2 --- a2 w3 )
  338.     SEARCH      ( sadr slen badr blen   -- n1 f1 )
  339.     SKIP        ( a1 n1 c1 --- )
  340.     SSEG        ( --- a1 )              UPC         ( char --- char' )
  341.     UPPER       ( a1 length --- )
  342.  
  343.  
  344.  Memory words for VALUES
  345.  
  346.  
  347.     !>          ( n1 | <name> --- )     +!>       ( n1 | <name> --- )
  348.     =:          ( n1 | <name> --- )     IS        ( cfa --- data-address )
  349.     @>          ( | <name> --- n1 )     DECR>       ( | <name> -- )
  350.     INCR>       ( | <name> -- )         OFF>        ( | <name> --- )
  351.     ON>         ( | <name> --- )
  352.  
  353.  
  354.  Memory Manipulation words for External memory and Ports
  355.  
  356.  
  357.     !L          ( n1 seg a1 --- )
  358.     C!L         ( c1 seg a1 --- )
  359.     CMOVEL      ( sseg sptr dseg dptr cnt -- )
  360.     CMOVEL>     ( from-seg from-offset to-seg to-offset length --- )
  361.     LFILL       ( a1 len value --- )
  362.     LFILLW      ( seg offset byte-len WORD --- )
  363.     P!          ( n1 port# --- )
  364.     P@          ( port# -- n1 )
  365.     PARAGRAPH   ( offset --- paragraph-in )
  366.     PC!         ( n1 port# --- )
  367.     PC@         ( port# -- n1 )
  368.     XALIGN      ( --- )
  369.     XEVEN       ( a1 --- a2 )
  370.  
  371.  
  372.  Menu Building words
  373.  
  374.  
  375.     ENDMENU     ( a1 n1 --- )
  376.     MENU        ( --- a1 n1 )
  377.     MENULINE"   ( n1 | <string> <func> --- n1+1 )
  378.     NEWMENU     ( | <name> --- )
  379.     NEWMENUBAR  ( | <name> --- )
  380.  
  381.  
  382.  Mode Control and Associated words
  383.  
  384.  
  385.     AUTOEDITOFF ( --- )                 AUTOEDITON  ( --- )
  386.     AUTOSAVEOFF ( --- )                 AUTOSAVEON  ( --- )
  387.     BACKUPOFF   ( --- )                 BACKUPON    ( --- )
  388.     BLANKOFF    ( --- )                 BLANKON     ( --- )
  389.     HELPOFF     ( --- )                 HELPON      ( --- )
  390.     HIDELINES   ( --- )                 INITCOLOR   ( --- )
  391.     INITMONO    ( --- )                 NOBACKUP    ( --- )
  392.     RESTORESTATE( --- )                 RESTORE_VECTORS ( -- )
  393.     SAVESTATE   ( --- )                 SET_VECTORS ( -- )
  394.     SHOWLINES   ( --- )                 SRCOFF      ( --- )
  395.     SRCON       ( --- )                 STATOFF     ( --- )
  396.     STATON      ( --- )                 WITHPATH    ( --- f1 )
  397.  
  398.  
  399.  Number Conversion & Output words
  400.  
  401.  
  402.     #           ( d1 --- d2 )           #>          ( d1 --- a1 n1 )
  403.     #S          ( d1 --- d2=0 )         (D.)        ( d1 --- a1 n1 )
  404.     (U.)        ( n1 --- a1 n2 )        (UD.)       ( d1 --- a1 n1 )
  405.     .           ( n1 --- )              .R          ( n1 n2 --- )
  406.     <#          ( d1 --- d1 )           ?           ( a1 --- )
  407.     BASE        ( --- a1 )              CONVERT     ( +d1 a1 --- +d2 a2 )
  408.     D.          ( d1 --- )              D.M.Y       ( --- )
  409.     D.R         ( d1 n1 --- )           DECIMAL     ( --- )
  410.     DIGIT       ( char base --- n1 f1 ) DOUBLE?     ( --- f1 )
  411.     DPL         ( --- a1 )              H.          ( u -- )
  412.     HEX         ( --- )                 HLD         ( --- a1 )
  413.     HOLD        ( c1 --- )              M/D/Y       ( --- )
  414.     NUMBER      ( a1 --- d1 )           NUMBER?     ( a1 --- d1 f1 )
  415.     OCTAL       ( --- )                 S>D         ( n1 --- d1 )
  416.     SIGN        ( n1 --- )              U*D         ( n1 n2 --- d1 )
  417.     U.          ( n1 --- )              U.R         ( n1 n2 --- )
  418.     UD.         ( d1 --- )              UD.R        ( d1 n1 --- )
  419.     Y-M-D       ( --- )
  420.  
  421.  
  422.  Printing Related words
  423.  
  424.  
  425.     FILEPRINT   ( | <name> --- )        FPRINT      ( file_specs --- )
  426.     IBM-PROPRINT ( --- )                PCLOSE      ( --- )
  427.     PDOS        ( a1 drive# --- f1 )    PEMIT       ( c1 --- )
  428.     PFILE       ( | <name> --- )        PR-STATUS   ( n1 --- n2 )
  429.     PRINT       ( | <command-line> -- ) PRINTING    ( --- a1 )
  430.     PRNHNDL     ( --- a1 )              TELETYPE    ( --- )
  431.     TOPRINTER   ( --- )
  432.  
  433.  
  434.  Stack Manipulation words
  435.  
  436.  
  437.     -ROT        ( n1 n2 n3 --- n3 n1 n2 )
  438.     .S          ( --- )
  439.     2>R         ( n1 n2 --- )
  440.     2DROP       ( d1 --- )              2DUP        ( d1 --- d1 d1 )
  441.     2OVER       ( d1 d2 --- d1 d2 d1 )  2R>         ( --- n1 n2 )
  442.     2R@         ( --- n1 n2 )           2ROT      ( d1 d2 d3 --- d2 d3 d1 )
  443.     2SWAP       ( d1 d2 --- d2 d1 )
  444.     3DROP       ( n1 n2 n3 --- )
  445.     3DUP        ( n1 n2 n3 --- n1 n2 n3 n1 n2 n3 )
  446.     4DUP        ( d1 d2 --- d1 d2 d1 d2 )
  447.     >R          ( n1 --- )
  448.     ?DNEGATE    ( d1 d2 --- d3 )        ?DUP    ( n1 --- n1 n1<>0 | n1=0)
  449.     ?NEGATE     ( n1 n2 --- n3 )        ABS         ( n1 --- n2 )
  450.     DEPTH       ( -- n1 )
  451.     DROP        ( n1 --- )              DUP         ( n1 --- n1 n1 )
  452.     DUP>R       ( n1 --- n1 )           FLIP        ( n1 --- n2 )
  453.     NIP         ( n1 n2 --- n2 )        OVER        ( n1 n2 --- n1 n2 n1 )
  454.     PICK        ( n1 --- n2 )           R>          ( --- n1 )
  455.     R>DROP      ( --- )                 R@          ( --- n1 )
  456.     RESTORE>    ( --- )
  457.     ROLL        ( n1 --- n2 )
  458.     ROT         ( n1 n2 n3 --- n2 n3 n1 )
  459.     RP!         ( a1 --- )
  460.     RP0         ( --- a1 )              RP@         ( --- a1 )
  461.     SAVE!>      ( n1 --- )              SAVE>       ( --- )
  462.     SP!         ( a1 --- )              SP0         ( --- a1 )
  463.     SP@         ( --- a1 )              SPLIT       ( n1 --- n2 n3 )
  464.     SWAP        ( n1 n2 --- n2 n1 )     TUCK        ( n1 n2 --- n2 n1 n2 )
  465.  
  466.  
  467.  Status Testing and Error Condition Handling words
  468.  
  469.  
  470.     ?COMP       ( --- )                 ?CONDITION  ( f1 --- )
  471.     ?CSP        ( --- )                 ?DOINGMAC   ( --- f1 )
  472.     ?DOSIO      ( --- f1 )              ?ENOUGH     ( n1 --- )
  473.     ?ERROR      ( a1 n1 f1 --- )        ?EXEC       ( --- )
  474.     ?LOADED     ( | <filename> --- )    ?MISSING    ( f1 --- )
  475.     ?STACK      ( --- )                 ABORT       ( --- )
  476.     ABORT"      ( f1 | <message>" --- ) CSP         ( --- a1 )
  477.     STATUS      ( -- )
  478.  
  479.  
  480.  String Manipulation and Output words
  481.  
  482.  
  483.     "           ( | <string>" --- )     ""          ( | <string>" --- )
  484.     ">$         ( a1 n1 --- a2 )        "BUF        ( --- a1 )
  485.     "ENVFIND    ( a1 n1 --- n2 f1 )     "HEADER     ( a1 --- )
  486.     $>EXT       ( a1 n1 a2 --- )        $>HANDLE    ( a1 handle --- )
  487.     $>TIB       ( a1 --- )              ,"          ( | <string> --- )
  488.     -TRAILING   ( a1 n1 --- a2 n2 )     ."          ( | <string>" --- )
  489.     .(          ( | <string>) --- )
  490.     .BOX"       ( | <string>" --- )
  491.     .COMMENT:   ( | ....COMMENT; --- )
  492.     /STRING     ( a1 len n1 --- addr' len' )
  493.     ?CR         ( --- )
  494.     ?LINE       ( n1 --- )
  495.     ?PAGE       ( --- )                 ?UPPERCASE  ( a1 --- a1 )
  496.     COMMENT:    ( --- )                 PAD         ( --- a1 )
  497.     PAGE        ( --- )                 PARSE       ( a1 --- a2 n1 )
  498.     PLACE       ( from count to --- )
  499.  
  500.  
  501.  System words
  502.  
  503.  
  504.     !CSP        ( --- )                 !USED       ( --- )
  505.     #CODESEGS   ( --- n1 )              #HEADSEGS   ( --- n1 )
  506.     #LISTSEGS   ( --- n1 )              #THREADS    ( --- n1 )
  507.     #TIB        ( --- a1 )              #USER       ( --- a1 )
  508.     #VOCS       ( --- a1 )              '           ( | <name> --- cfa )
  509.     'DOCOL      ( --- a1 )              'TIB        ( --- a1 )
  510.     'WORD       ( --- a1 )
  511.     (           ( --- )
  512.     (FIND)      ( here lfa --- cfa flag | here flase )
  513.     (FRGET)     ( code-addr relative-link-addr --- )
  514.     ,CALL       ( --- )
  515.     ,JUMP       ( --- )
  516.     ,VIEW       ( --- )                 .COMPSTAT   ( --- )
  517.     .COMSPEC    ( --- )                 .DATE       ( --- )
  518.     .ELAPSED    ( --- )                 .ENV        ( --- )
  519.     .FREE       ( --- )                 .HELLO      ( --- )
  520.     .ME         ( --- )                 .PATH       ( --- )
  521.     .STATUS     ( --- )                 .TIME       ( --- )
  522.     .USED       ( --- )                 .VOCWORDS   ( --- )
  523.     /*          ( | ... */ --- )        0COMPILER   ( --- )
  524.     >NEST       ( --- a1 )              >NEXT       ( --- a1 )
  525.     >PRE        ( --- )                 ?CS:        ( --- seg )
  526.     ?ES:        ( --- seg )             ?FILLBUFF   ( --- )
  527.     ?VMODE      ( --- )                 A;          ( --- )
  528.     ADEBUG      ( a1 --- )              ASSEMBLER   ( --- )
  529.     ATBL        ( --- a1 )              AUTOSAVE-MINUTES ( --- n1 )
  530.     BDOS        ( n1 func# --- a1 )     BGSTUFF     ( --- )
  531.     BOOT        ( --- )                 BUG         ( --- )
  532.     BYE         ( --- )                 BYTFUNC     ( --- )
  533.     CNHASH      ( cfa -- ya )           CNSRCH ( cfa ya maxya -- nfa failf )
  534.     CNT         ( --- a1 )              COLD        ( -- )
  535.     COMPILE     ( | <name> -- )         CONHNDL     ( --- a1 )
  536.     CONTEXT     ( --- a1 )              CONTROL     ( <char> -- n1 )
  537.     CRASH       ( -- )                  CURRENT     ( --- a1 )
  538.     DBG         ( | <name> --- )        DEFAULT     ( --- )
  539.     DEFAULTSTATE( --- )                 DIV0FUNC    ( -- )
  540.     DIV0STRT    ( -- )
  541.     DIVIDE0     ( status_reg CS IP AX BX CX DX SI BP -- )
  542.     DLN         ( a1 --- )
  543.     DONE?       ( n1 -- f1 )            EDITOR      ( --- )
  544.     EMIT.       ( char -- )             END?        ( --- a1 )
  545.     ENTRY       ( --- a1 )              ES0         ( --- a1 )
  546.     EXEHCB      ( --- a1 )              FIRST       ( --- a1 )
  547.     FORTH       ( --- )                 FUDGE       ( --- a1 )
  548.     GO          ( a1 --- )              HASH  ( str-addr voc-ptr -- thread )
  549.     HDEFAULT    ( -- )
  550.     HDOS1 ( cx dx fun -- ax cf | err-code 1 )
  551.     HERE        ( --- a1 )
  552.     HIDDEN      ( --- )
  553.     INITSTUFF   ( --- )                 INSTALLSTUFF( --- )
  554.     INTERPRET   ( -- )                  LAST        ( --- a1 )
  555.     LIMIT       ( --- a1 )              LINK        ( --- a1 )
  556.     MAKEDUMMY   ( | <name> -- )         MAX.S       ( --- a1 )
  557.     MAXNEST     ( --- n1 )              MEMCHK      ( f1 --- )
  558.     NO-NAME     ( --- )                 NOOP        ( --- )
  559.     OSF         ( --- a1 )              OUTPAUSE    ( --- )
  560.     PAUSE       ( --- )                 PAUSE-FUNC  ( --- )
  561.     PRE>        ( --- )                 PRIOR       ( --- a1 )
  562.     ROOT        ( --- )                 RUN         ( --- )
  563.     SEGSET      ( --- )                 SEQINIT     ( --- )
  564.     SETTIB      ( a1 --- )              SETYSEG     ( --- )
  565.     SOURCE      ( --- a1 n1 )           SOURCE-PARSE-WRD ( C1 --- A1 N1 )
  566.     START       ( --- )                 STATE       ( --- a1 )
  567.     SVINIT      ( --- )                 SVSEG       ( --- seg1 )
  568.     TOS         ( --- a1 )              TOTALWORDS  ( --- a1 )
  569.     TRIM        ( faddr voc-addr -- )   UNBUG       ( -- )
  570.     UNINSTALLSTUFF  ( --- )             UP          ( --- a1 )
  571.     USER        ( --- )                 VMODE-VAR   ( --- a1 )
  572.     VMODE.SET   ( --- )                 VOC-LINK    ( --- a1 )
  573.     VOCABULARY  ( | <name> -- )         W.NAME      ( NFA --- )
  574.     WARM        ( -- )                  WARNING     ( --- a1 )
  575.     WORD        ( C1 --- A1 )           XSEG        ( --- a1 )
  576.  
  577.  
  578.  Terminal Input & Output words
  579.  
  580.  
  581.     #LINE       ( --- a1 )              #OUT        ( --- a1 )
  582.     #PAGE       ( --- a1 )              (EMIT)      ( c1 --- )
  583.     (EXPECT)    ( a1 n1 --- )           (KEY)       ( --- c1 )
  584.     (KEY?)      ( --- f1 )              -LINE       ( --- )
  585.     -TAB        ( --- )                 >ATTRIB1-8  ( --- )
  586.     >BG         ( n1 --- )              >BOLD       ( --- )
  587.     >BOLDBLNK   ( --- )                 >BOLDUL     ( --- )
  588.     >BUGN       ( --- )                 >BUWT       ( --- )
  589.     >COLOR      ( --- )                 >FG         ( n1 --- )
  590.     >IBM        ( --- )                 >IN         ( --- a1 )
  591.     >LCD        ( --- )                 >MONO       ( --- )
  592.     >NONE       ( --- )                 >NORM       ( --- )
  593.     >RDWT       ( --- )                 >REV        ( --- )
  594.     >REVBLNK    ( --- )                 >TYPE       ( a1 n1 --- )
  595.     >UL         ( --- )                 ?DARK       ( --- )
  596.     ?KEYPAUSE   ( --- )                 ?PRINTER.READY ( --- f1 )
  597.     AT          ( col row --- )         ATTRIB      ( --- a1 )
  598.     BACKSPACES  ( n1 --- )              BEEP        ( --- )
  599.     BELL        ( --- c1 )              BIG-CURSOR  ( --- )
  600.     BIOSCHAR    ( --- a1 )              BIOSKEY     ( --- n1 )
  601.     BIOSKEY?    ( --- f1 )              BIOSKEYVAL  ( --- a1 )
  602.     BL          ( --- c1 )              BLACK       ( --- n1 )
  603.     BLACK-ON-WHITE ( --- )              BLUE        ( --- n1 )
  604.     BROWN       ( --- n1 )              BS          ( --- c1 )
  605.     CLS         ( --- )                 COLS        ( --- n1 )
  606.     CONSOLE     ( c1 --- )              CR          ( --- )
  607.     CRLF        ( --- )                 CROWS       ( --- n1 )
  608.     CRTAB       ( --- )                 CURSOR-ON   ( --- )
  609.     CURSOR-OFF  ( --- )                 CYAN        ( --- n1 )
  610.     DARK        ( --- )                 DKGRAY      ( --- n1 )
  611.     DTBUF       ( --- a1 )              EEOL        ( --- )
  612.     EMIT        ( c1 -- )               EXPECT      ( a1 n1 --- )
  613.     EXTYPE      ( seg a1 n1 --- )       FEMIT       ( c1 --- )
  614.     FORM-FEED   ( --- )                 GET-CURSOR  ( --- SHAPE )
  615.     GREEN       ( --- n1 )              IBM--LINE   ( -- )
  616.     IBM-AT      ( col row -- )          IBM-AT?     ( --- col row )
  617.     KEY         ( --- c1 )              KEY?        ( --- f1 )
  618.     LDUMP       ( seg offset len --- )  LMARGIN     ( -- a1 )
  619.     LTBLUE      ( --- n1 )              LTCYAN      ( --- n1 )
  620.     LTGRAY      ( --- n1 )              LTGREEN     ( --- n1 )
  621.     LTMAGENTA   ( --- n1 )              LTRED       ( --- n1 )
  622.     MAGENTA     ( --- n1 )              MED-CURSOR  ( --- )
  623.     NORM-CURSOR ( --- )                 QTYPE       ( A1 N1 --- )
  624.     QUERY       ( --- )                 RED         ( --- n1 )
  625.     RMARGIN     ( -- a1 )               ROWS        ( --- n1 )
  626.     SET-CURSOR  ( N1 --- )              SLOW        ( --- )
  627.     SPACE       ( --- )                 SPACES      ( n1 --- )
  628.     SPAN        ( --- a1 )              SPCS        ( --- a1 )
  629.     TAB         ( -- )                  TABSIZE     ( --- a1 )
  630.     TIB         ( --- a1 )              TILLKEY     ( n1 --- )
  631.     TYPE        ( a1 n1 --- )           TYPESEG     ( --- a1 )
  632.     VIDEO-SEG   ( --- a1 )              VIDEO-TYPE  ( a1 n1 --- )
  633.     WHITE       ( --- n1 )              WHITE-ON-BLACK  ( --- )
  634.     YELLOW      ( --- n1 )
  635.  
  636.  
  637.  Timing Related words
  638.  
  639.  
  640.     10TH-ELAPSED ( --- n1 )             B>SEC       ( d1 --- n1 )
  641.     B>T         ( d1 --- d2 )           FORM-DATE   ( d1 --- a1 )
  642.     FORM-TIME   ( d1 --- a1 )           GETDATE     ( --- Y MD )
  643.     GETTIME     ( --- HM Sh )           HOURS       ( N1 --- )
  644.     MINUTES     ( N1 --- )              MS          ( n1 --- )
  645.     SEC-ELAPSED ( --- N1 )              SECONDS     ( N1 --- )
  646.     SETDATE     ( NM Y --- )            SETTIME     ( HM Sh --- )
  647.     STIME       ( --- a1 )              T>B         ( d1 --- d2 )
  648.     TENTHS      ( N1 --- )              TIME-ELAPSED( --- d1 )
  649.     TIME-RESET  ( --- )                 TIMER       ( | forth_commands --- )
  650.     TTIME       ( --- a1 )
  651.  
  652.  
  653.  Utility words
  654.  
  655.  
  656.     DEBUG       ( | <name> --- )        DEBUGABLE   ( --- )
  657.     DLN         ( a1 --- )              DONE        ( --- )
  658.     DU          ( a1 -- addr+64 )       DUMP        ( a1 len -- )
  659.     ED          ( --- )                 EDIT        ( n1 --- )
  660.     EMPTY       ( --- )                 FALLOF      ( func | fl_specs --- )
  661.     FAST        ( --- )                 FENCE       ( --- a1 )
  662.     FIND        ( a1 -- cfa flag | a1 false )
  663.     FLOOK       ( | <string> <fl_specs> --- )
  664.     FORGET      ( | <name> -- )
  665.     FSAVE       ( | <name> --- )        INDEX       ( file_spec --- )
  666.     INLINE      ( --- )                 INSTALL     ( --- )
  667.     LINEEDITOR  ( x y a1 n1 --- f1 )    LISTING     ( --- )
  668.     MANY        ( -- )                  MARK        ( | <name> -- )
  669.     POSTFIX     ( --- )                 PREFIX      ( --- )
  670.     QUIT        ( -- )                  REF         ( | <name> --- )
  671.     REPAIR      ( | <name> --- )        SAVE-EXE    ( | <name> --- )
  672.     SED         ( | filename --- )      SEE         ( <name> --- )
  673.     THESE       ( --- )                 TIMES       ( N1 -- )
  674.     TOTALLINES  ( --- a1 )              TURNKEY     ( | <name> --- )
  675.     UNDEFER     ( | <name> -- )         UNEDIT      ( --- )
  676.     UNINSTALL   ( --- )                 USED        ( | <command_line> --- )
  677.     USEDIN      ( | <name> --- )        WORDS       ( | <text> <text> -- )
  678.     XDUMP       ( a1 n1 --- )           XREF        ( | <name> --- )
  679.     YDUMP       ( A1 N1 --- )
  680.  
  681.  
  682.  VIEW Manipulation words
  683.  
  684.  
  685.     +LINES      ( n1 --- )              -1LINE      ( --- )
  686.     -LINES      ( n1 --- )              >VIEWFILE   ( cfa --- offset a1 )
  687.     >VIEWLINE   ( n1 --- )              B           ( --- )
  688.     HELLO       ( --- )                 HELP        ( | <name> --- )
  689.     HELPVIEW    ( | <name> --- )        L           ( --- )
  690.     LIST        ( n1 --- )              LL          ( | <name> --- )
  691.     N           ( --- )                 SETVIEW     ( | <path> --- )
  692.     VIEW        ( | <name> --- )        VIEWLINES   ( n1 n2 --- )
  693.     VIEWPATH    ( --- a1 )
  694.  
  695.  
  696.  Window Control words
  697.  
  698.  
  699.     BCR         ( --- )
  700.     BOX         ( left top right bottom --- )
  701.     BOX&FILL    ( left top right bottom --- )
  702.     RECOVERLINE ( n1 --- )
  703.     RECOVERSCR  ( --- )
  704.     RESTSCR     ( --- )
  705.     SAVESCR     ( --- )
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  --------------------  Function Glossary Aplphabetic  -------------------
  727.  
  728. !       ( n1 a1 --- )           KERNEL1
  729.         Store a 16 bit value N1 into the address a1 in the CODE
  730.         segment.
  731.  
  732. !>      ( n1 | <name> -- )      EQUCOLON
  733.         Store the value n1 on the stack into the body field of <name>.
  734.         Typically used to modify a VALUE or VARIABLE. May be used on
  735.         the command line. Used in the form:   10 !> XX   where XX is a
  736.         VALUE or VARIABLE.
  737.  
  738. !CSP    ( -- )                  KERNEL3
  739.         Save the current stack level for later error checking by ?CSP.
  740.  
  741. !HCB    ( a1 | <name> --- )     HANDLES
  742.         Get <name> from the input stream and move it into the handle
  743.         a1.
  744.  
  745. !L      ( n1 seg a1 -- )        KERNEL2
  746.         Store the 16 bit value N1 into the FAR address specified by SEG
  747.         and ADDR.
  748.  
  749. !USED   ( --- )                 UTILS
  750.         Stores away the current values of the various segments in F-PC
  751.         for later comparison with the same values after a compile.
  752.         Used to determine dictionary space usage.
  753.  
  754. "       ( | <string>" -- )      compile time    KERNEL3
  755.         ( --- a1 n1 )           runtime
  756.         Compile <string> terminated by a ", into CODE space. Return the
  757.         address and length of the string at runtime.
  758.  
  759. ""      ( | <string>" -- )      compile time    KERNEL3
  760.         ( --- a1 n1 )           runtime
  761.         Compile <string> terminated by a ", into LIST space. The
  762.         string is moved into a CODE space buffer at runtime, the
  763.         address and length of the buffer are subsequently returned.
  764.         Only a single buffer is used for these strings, so each ""
  765.         string must be used before the next "" string is executed.
  766.  
  767. "+      ( a1 n1 -- )            TIMER
  768.         Append string a1,n1 to the date/time buffer DTBUF ;
  769.  
  770.  
  771. ".ERRMSG ( a1 n1 -- )           SEDSHELL
  772.         Display mesage a1,n1 in a 32 character wide box and wait for
  773.         a key to be pressed.
  774.  
  775. ">$     ( a1 len -- a2 )        KERNEL3
  776.         Convert address a1 and length len of a string created with "
  777.         into a counted string address a2.  This word relys on the fact
  778.         that " really creates counted strings, but converts them to
  779.         address and length on execution.
  780.  
  781. "BUF    ( --- a1 )              KERNEL3
  782.         The buffer that is used when returning a "" string at runtime.
  783.         See also the "" definition above.
  784.  
  785. "CREATE ( a1 -- )               KERNEL3
  786.         Create a definition in the dictionary from the counted string a1.
  787.         The definition will behave like CREATEed definitions.
  788.  
  789. "EMIT   ( -- )                  PERTYPE
  790.         Emit a " character to the screen using the fast FEMIT word.
  791.  
  792. "ENVFIND ( a1 n1 --- n2 f1 )    ENVIRON
  793.         Search the environment for the string specified by a1, n1 where
  794.         A1 is the address of the first character to find, and N1 is the
  795.         length of the string being searched for. Return a boolean flag
  796.         TRUE if found, and N2 the offset into the environment where the
  797.         match occured.
  798.  
  799. "HEADER ( a1 --- )              KERNEL3
  800.         Use the string specified by a1 to make a header, and initialize
  801.         the code field. First we check for duplicates. Then we make
  802.         entry in >NAME hash table if appropriate. Next lay down the
  803.         view field. Then we hook in to the correct thread an make the
  804.         link field. We set up LAST so that it points to our name
  805.         field. Then we copy the name to YSEG and delimit the name
  806.         field bits. Then we make the pointer in the YSEG to the CFA.
  807.         Then we add a stopper entry to >NAME hash table in case of a
  808.         large ALLOT or end of dictionary. All of the work is done in
  809.         HEAD space, "HEADER has no effect on CODE space whatsoever.
  810.  
  811. "SYSCOMMAND ( a1 n1 c1 -- )     EXEC
  812.         Pass the string a1,n1 to DOS with the Forth line following the
  813.         command up to character c1 appended to string a1,n1.
  814.  
  815. #       ( d1 --- d2 )           KERNEL2
  816.         Convert a single digit of D1 into the number conversion buffer
  817.         below PAD in the current base.  Return D2 the remainder for
  818.         further conversion.
  819.  
  820. ##+     ( n1 -- )               TIMER
  821.         Append the two lower digits of n1 in the current base to DTBUF.
  822.  
  823. #>      ( d1 --- a1 len )       KERNEL2
  824.         Complete the numeric conversion of D1, discarding the double
  825.         ZERO and returning the address and count of the converted
  826.         string located below PAD.
  827.  
  828. #CODESEGS ( --- n1 )            KERNEL2
  829.         A VALUE which returns the number of 16 byte segments assigned
  830.         to be used for CODE (assembly language), CONSTANTS and
  831.         VARIABLES.  Limited to 64k, which is the value 4096 decimal.
  832.  
  833. #DIRSEGS ( -- n1 )              WFL             HIDDEN
  834.         A constant that returns the number of segments (16 byte
  835.         paragraphs) allocated to the directory save buffer.
  836.  
  837. #ELSE   ( --- )                 COMMENT
  838.         The optional ELSE portion of an interpreted conditional
  839.         structure started with #IF, and completed with #THEN.  See
  840.         also #IF.
  841.  
  842. #EMPTY  ( -- n1 )               DECOM           HIDDEN
  843.         An internal word used by the decompiler. It allows the decompiler
  844.         to know how many blank lines are between the word being
  845.         decompiled, and the split screen line. Used to know when to
  846.         scroll the decompilers lines.
  847.  
  848. #ENDIF
  849. #THEN   ( --- )                 COMMENT
  850.         Ends a multi-line Compiler directive. See #IF.
  851.  
  852. #FLS    ( -- n1 )               WFL             HIDDEN
  853.         A VALUE that holds the number of directory entries read when the
  854.         pop up file selection tool is used.
  855.  
  856. #HEADSEGS ( --- n1 )            KERNEL2
  857.         A VALUE which returns the number of 16 byte segments assigned
  858.         to be used for Forth HEADERS.  Limited to 64k, which is the
  859.         value 4096 decimal.
  860.  
  861. #IF     ( f1 --- )              COMMENT
  862.         Starts a multi-line compiler directive. If the boolean passed
  863.         to #IF is true, then the lines following #IF will be executed.
  864.         If the boolean is false, then the lines following #IF up to the
  865.         #ENDIF or #THEN, will be ignored.  An optional #ELSE may be
  866.         inserted after #IF, and before #THEN. Used in the following
  867.         form:   <boolean> #IF           TRUE portion to perform
  868.                           #ELSE         optional else portion
  869.                           #THEN         operation continues here.
  870.  
  871. #LINE   ( --- a1 )              KERNEL2
  872.         A variable that holds the line number of the current line on
  873.         which text is being typed. Incremented by CR.
  874.  
  875. #LISTSEGS ( --- n1 )            KERNEL2
  876.         A VALUE which returns the number of 16 byte segments assigned
  877.         to be used for bodys of Forth colon definitions.  Limited by
  878.         the memory of your computer.
  879.  
  880. #MACROS ( -- n1 )               MACROS          HIDDEN
  881.         A CONSTANT that specifies how many keyboard macros we can have
  882.         defined at one time.
  883.  
  884. #NUM    ( a1 -- d1 f1 )         KERNEL2
  885.         A DEFERed word that is used by %NUMBER to process normal number
  886.         conversions. Normally contains NUMBER?.
  887.  
  888. #OUT    ( --- a1 )              KERNEL2
  889.         A variable that holds the column number of the most recent type
  890.         or emit to the display. Incremented by EMIT or TYPE.
  891.  
  892. #PAGE   ( --- a1 )              UTILS
  893.         A VARIABLE that contains the number of the current page.  #PAGE
  894.         is incremented by PAGE, but must be reset manually.
  895.  
  896. #PRLINES ( -- n1 )              BROWSE          HIDDEN
  897.         A VALUE that counts the times ?.PRLINES is called between actually
  898.         showing an update message on the screen while doing >BROWSE.
  899.  
  900. #S      ( d1 --- d2=0 )         KERNEL2
  901.         Convert the double number D1 into ascii characters stored below
  902.         PAD until D1 is reduced to a double ZERO.
  903.  
  904. #THREADS ( -- n1 )              KERNEL1
  905.         Return the CONSTANT number of vocabulary threads used in the
  906.         dictionary. In F-PC this number can vary in binary multiples
  907.         from 2 to 128, it is normally set to 64.
  908.  
  909. #TIB    ( --- a1 )              KERNEL2
  910.         Used by WORD to hold the number of characters in the terminal
  911.         input buffer when interpreting from the keyboard.
  912.  
  913. #TIMES  ( -- a1 )               UTILS
  914.         Used by TIMES in performing a Forth command line repeatedly.
  915.  
  916. #USER   ( --- a1 )              KERNEL4
  917.         A VARIABLE that holds the count of how many user variables are
  918.         allocated.
  919.  
  920. #VOCS   ( --- n1 )              KERNEL2
  921.         The maximum number of vocabularies that can be active at one
  922.         time in the vocabulary search order array.
  923.  
  924. $.L     ( a1 n1 n2 -- )         UTILS
  925.         Display string a1,n1 left justified in a field of n2 characters.
  926.  
  927. $.R     ( a1 n1 n2 -- )         UTILS
  928.         Display string a1,n1 right justified in a field of n2 characters.
  929.  
  930. $>EXT   ( a1 n1 a2 --- )        HANDLES
  931.         Move the specified string a1,n1 to the extension field of the
  932.         handle a2.
  933.  
  934. $>HANDLE ( a1 a2 --- )          HANDLES
  935.         Move a counted filename string a1 into handle a2  for use by
  936.         the following words.
  937.  
  938. $>TIB   ( a1 --- )              UTILS
  939.         Move the counted string A1 into the Terminal Input Buffer for
  940.         immediate interpretation or access with WORD.  Any contents of
  941.         TIB is overwritten.
  942.  
  943. $DIR    ( a1 -- )               EXEC            HIDDEN]
  944.         Display a directory for the drive and path counted string a1.
  945.  
  946. $FILE   ( a1 -- f1 )            FPATH
  947.         Open the file specified by the counted string a1. Return f1
  948.         false if the file opened properly. Searches the Forth PATH in
  949.         trying to open the file.
  950.  
  951. $FLOAD  ( a1 --- f1 )           SEQREAD
  952.         the file specified by counted string a1, return f1 true
  953.         if the file did not exist. Will abort if a compile error
  954.         occurs while compiling the file.
  955.  
  956. $GETDIR ( a1 -- )               WFL             HIDDEN
  957.         Read the directory using the filespec in counted string a1.
  958.         The directory entries are read into the external segment
  959.         directory buffer. See the file WFL.SEQ for usage.
  960.  
  961. $HOPEN  ( a1 --- f1 )           SEQREAD
  962.         Open the file specified by the counted string a1. Return
  963.         boolean f1 false if the open was succesful.
  964.  
  965. $NUM    ( a1 -- d1 f1 )         KERNEL2
  966.         A DEFERed word that is used by %NUMBER to process HEXDECIMAL
  967.         numbers, that is number starting with the $ symbol.
  968.  
  969. $PFILE  ( a1 --- f1 )           PRINT
  970.         Select a print file as specified by the counted string a1.
  971.         Return F1 a boolean error flag true if the print file could not
  972.         be created.
  973.  
  974. $SYS    ( a1 -- f1 )            EXEC            HIDDEN
  975.         Spawn a DOS shell and perform the DOS command specified in the
  976.         counted string a1. Return f1 true is an error occured.
  977.  
  978. %NUMBER ( a1 -- d1 f1 )
  979.         Convert count delimited string at a1 into double number.
  980.         Special prefixes allowed.
  981.  
  982. &>      ( t1 --- a1 )
  983.         Return the BODY address a1 of word t1, a VALUE of VARIABLE.
  984.  
  985. '       ( | <name> -- cfa )     pronounced "tick"       KERNEL3
  986.         Return the CFA (code field address) of the next word in the
  987.         input stream, <name>.
  988.  
  989. 'DOCOL  ( --- a1 )              UTILS
  990.         A CONSTANT that returns the execution address of NEST, or
  991.         DOCOLON at it is sometimes known.
  992.  
  993. 'NUM    ( a1 -- d1 f1 )         KERNEL2
  994.         A defered word that processes 'A' byte in-line literal numbers
  995.         when compiling. See aso ^NUM, #NUM and $NUM.
  996.  
  997. 'TIB    ( --- a1 )              KERNEL2
  998.         A VARIABLE that contains an address that points to the location
  999.         in memory where characters are entered by user.
  1000.  
  1001. (       ( -- )                  KERNEL3
  1002.         The Forth comment character. The input stream of the current
  1003.         line is skipped until a ) is encountered.  Terminates at line
  1004.         end.
  1005.  
  1006. (")     ( | <string> -- a1 len )KERNEL3
  1007.         Return the address and length of the inline string, and
  1008.         continue execution after the string.
  1009.  
  1010. (+LOOP) ( n1 --- )              KERNEL1
  1011.         Increment the loop counter by the value on the stack and decide
  1012.         whether or not to loop again.  Due to the wierdness of the
  1013.         8080, you have to stand on your head to determine the
  1014.         conditions under which you loop or exit.
  1015.  
  1016. (.")    ( --- )                 KERNEL3
  1017.         Type the inline string, and continue execution after the
  1018.         string. Compiled by ." , not used from the keyboard.
  1019.  
  1020. (.)     ( n1 --- a1 n2 )        KERNEL2
  1021.         Convert a signed 16 bit number to a string.
  1022.  
  1023. (?DO)   ( n1 n2 --- )           KERNEL1
  1024.         The runtime code compiled by ?DO.  The difference between ?DO
  1025.         and DO is that ?DO will not perform any iterations if the
  1026.         initial index is equal to the final index.
  1027.  
  1028. (?ERROR) ( a1 n1 f1 --- )       KERNEL3
  1029.         Default for ?ERROR. If boolean f1 is true then type the message
  1030.         specified by a1,n1 and QUIT. Else discard the message a1,n1.
  1031.  
  1032. (?LEAVE) ( f1 --- )             KERNEL1
  1033.         Compiled function emplaced by ?LEAVE. Leaves if the flag on the
  1034.         stack is true.  Continues if not.
  1035.  
  1036. (?SERROR) ( a1 n1 f1 --- )      SEQREAD
  1037.         If boolean is true, then print message addr1,n1 and show the
  1038.         line in the current file where the error occured.
  1039.  
  1040. (?STACK) ( -- )                 KERNEL3
  1041.         An assembly primitive that checks for stack underflow, stack
  1042.         overflow, and the nearly out of memory condition.
  1043.  
  1044. (ABORT") ( f1 -- )              KERNEL3
  1045.         The Runtime code compiled by ABORT". Uses ERROR, and updates
  1046.         return stack.
  1047.  
  1048. (CHAR)  ( a1 n1 c1 -- a1 n1+1 c1 )
  1049.         A primitive used by the "kernel" EXPECT that saves character c1
  1050.         into the current EXPECT buffer.
  1051.  
  1052. (CONSOLE) ( c1 -- )             SEQREAD
  1053.         Send character c1 to the console using a handle write to device
  1054.         CON:. See aso CONSOLEL, (PRINT) and PRINTL.
  1055.  
  1056. (D.)    ( d1 --- a1 n1 )        KERNEL2
  1057.         Convert a signed double number to a string.
  1058.  
  1059. (DO)    ( n1 n2 --- )           KERNEL1
  1060.         The runtime code compiled by DO. Pushes the inline address onto
  1061.         the return stack along with values needed by (LOOP).
  1062.  
  1063. (DOERROR)               FORTH
  1064.  
  1065. (EDITERR)               FORTH
  1066.  
  1067. (EMIT)  ( c1 --- )              KERNEL2
  1068.         Sends a character to both the console and optionally to the
  1069.         printer.
  1070.  
  1071. (ESC-IN)                FORTH
  1072.  
  1073. (EXPECT) ( a1 n1 --- )          KERNEL2
  1074.         Wait for n1 characters to be typed at the keyboard, and place
  1075.         those characters in the buffer starting at a1.
  1076.  
  1077. (FIND)  ( here lfa --- cfa flag | here false ) KERNEL3
  1078.         Does a search of the dictionary based on a pointer to a
  1079.         vocabulary thread and a string.  If it finds the string in the
  1080.         chain, it returns a pointer to the CFA field inside the header.
  1081.         This field contains the code field address of the body. If it
  1082.         was an immediate word the flag returned is a 1. If it is
  1083.         non-immediate the flag returned is a -1. If the name was not
  1084.         found, the string address is returned along with a flag of
  1085.         zero. Note that links point to links, and are absolute
  1086.         addresses.
  1087.  
  1088. (FRGET) ( code-addr relative-link-addr )        KERNEL3
  1089.         Forgets part of the dictionary. Both the code address and the
  1090.         header address are specified, and may be independent. (FRGET)
  1091.         resets all of the links and releases the space.
  1092.  
  1093. (IS)    ( cfa -- )              KERNEL4
  1094.        The code compiled by IS. Sets the following DEFERred word to the
  1095.        address on the parameter stack.
  1096.  
  1097. (KEY)   ( --- c1 )              KERNEL2
  1098.         Pauses until a key is ready, and returns it on the stack.
  1099.  
  1100. (KEY?)  ( --- f1 )              KERNEL2
  1101.         Returns true if the user has already pressed a key, otherwise
  1102.         false.
  1103.  
  1104. (LEAVE) ( --- )                 KERNEL1
  1105.         Compiled function emplace by LEAVE. Does an immediate exit of a
  1106.         DO ... LOOP structure.  Unlike FIG Forth which waits until the
  1107.         next LOOP is executed.
  1108.  
  1109. (LIT)   ( --- n1 )              KERNEL1
  1110.         The runtime code for literals.  Pushes the following two bytes
  1111.         onto the parameter stack and moves the IP over them. It is
  1112.         compiled by the word LITERAL.
  1113.  
  1114. (LIT+)                  HIDDEN
  1115.  
  1116. (LOOP)  ( --- )                 KERNEL1
  1117.         the runtime procedure for LOOP.  Branches back to the beginning
  1118.         of the loop if there are more iterations to do. Otherwise it
  1119.         exits. The loop counter is incremented.
  1120.  
  1121. (NUMBER) ( a1 --- d1 f1 )       KERNEL2
  1122.         Convert the count delimited string at a1 to a double number.
  1123.         (NUMBER) takes into account a leading minus sign, and stores a
  1124.         pointer to the last period in DPL.  Note the string must end
  1125.         with a blank or an error message is issued.
  1126.  
  1127. (NUMBER?) ( a1 --- d1 f1 )      KERNEL2
  1128.         Given a string containing at least one digit, convert it to a
  1129.         number.
  1130.  
  1131. (OF)    ( n1 n2 -- n1 )  ( or ) ( n1 n1 -- )    KERNEL1
  1132.         The run-time code compiled of OF .  If the top two stack
  1133.         elements are the same, the two items will be dropped from the
  1134.         stack and the code following OF will be executed.  Otherwise,
  1135.         only the top item is dropped from the stack, and a branch is
  1136.         taken from the literal following the in-line (OF) .
  1137.  
  1138. (PRINT) ( c1 -- )               SEQREAD
  1139.         Send character c1 to the current print device using a handle
  1140.         write. See also PRINTL, (CONSOLE) and CONSOLEL.
  1141.  
  1142. (REF)                   HIDDEN
  1143.  
  1144. (SEE)                   FORTH
  1145.  
  1146. (TYPE)                  FORTH
  1147.  
  1148. (TYPEL)                 FORTH
  1149.  
  1150. (U.)    ( n1 --- a1 n2 )        KERNEL2
  1151.         Convert an unsigned 16 bit number to a string.
  1152.  
  1153. (UD.)   ( d1 --- a1 n1 )        KERNEL2
  1154.         Convert an unsigned double number to a string.
  1155.  
  1156. (X")                    FORTH
  1157.  
  1158. (\.")                   FORTH
  1159.  
  1160. (])                     FORTH
  1161.  
  1162. *       ( n1 n2 -- n3 )         KERNEL1
  1163.         Returns a product of two numbers.  The numbers may be either
  1164.         signed or unsigned.  The product will be correct as long as it
  1165.         may be properly represented in 16 bits!
  1166.  
  1167. */      ( n1 n2 n3 -- quot )    KERNEL1
  1168.         is a particularly useful operator, as it allows you to do
  1169.         accurate arithmetic on fractional quantities.  Think of it as
  1170.         multiplying n1 by the fraction n2/n3.  The intermediate result
  1171.         is kept to full accuracy.  Notice that this is not the same as
  1172.         * followed by /. See Starting Forth for more examples.
  1173.  
  1174. */MOD   ( n1 n2 n3 -- mod quot )KERNEL1
  1175.         This returns the floored quotient and modulus of a 32 bit
  1176.         numerator and a 16 bit denominator n3 .  The numerator is an
  1177.         intermediate 32 bit product of the 16 bit quantities n1 and n2
  1178.         . Note that the sign of the modulus is the same as the sign of
  1179.         the denominator.
  1180.  
  1181. *BIG-CURSOR             HIDDEN
  1182.  
  1183. *D      ( n1 n2 --- d1 )        KERNEL1
  1184.         multiplys two singles and leaves a double.
  1185.  
  1186. *MED-CURSOR             HIDDEN
  1187.  
  1188. *NORM-CURSOR            HIDDEN
  1189.  
  1190. +       ( n1 n2 --- n3 )        KERNEL1
  1191.         Add the top two numbers on the stack and return the result.
  1192.  
  1193. +!      ( n1 a1 --- )           KERNEL1
  1194.         Increment the value at a1 by n1.  This is equivalent to the
  1195.         following:   DUP @ ROT + SWAP ! but much faster.
  1196.  
  1197. +!>     ( n1 | <name> -- )      EQUCOLON
  1198.         Increment the body field of <name> by value n1 on the stack.
  1199.         Typically used to modify a VALUE or VARIABLE.
  1200.  
  1201. +,"                     FORTH
  1202.  
  1203. +A.?                    HIDDEN
  1204.  
  1205. +LOOP   ( n1 -- )               KERNEL3
  1206.         Terminate a loop structure. Increment loop index by n1 and
  1207.         repeat <loop-body> until loop index crosses the boundary
  1208.         between limit and limit - 1. Used in the following form: DO
  1209.         <loop-body> LOOP.
  1210.  
  1211. +TAB    ( --- )                 DECOM
  1212.         Bump the left margin up by 8 characters.  used by the
  1213.         decompiler to display nested conditional structures.
  1214.  
  1215. +XSEG                   FORTH
  1216. ,       ( n1 -- )       pronounced "comma"      KERNEL3
  1217.         Set the contents of the dictionary to the arbitrary 16-bit
  1218.         value on the stack.
  1219.  
  1220. ,"      ( | <string> -- )       KERNEL3
  1221.         Add the following text string till a " to the dictionary in
  1222.         CODE space.
  1223.  
  1224. ,CALL   ( -- )                  KERNEL3
  1225.         Compiles a CALL to address ZERO, the actual branch address is
  1226.         set later by ;USES or ;CODE.
  1227.         See CREATE, VARIABLE, CONSTANT & :
  1228.  
  1229. ,JUMP   ( --- )                 KERNEL3
  1230.         Compiles a JMP to address ZERO, the actual jump address is set
  1231.         later by ;USES or ;CODE.  See CREATE, VARIABLE, CONSTANT & :
  1232.  
  1233. ,VIEW   ( -- )                  KERNEL3
  1234.         Calculate and compile the VIEW field into the header.
  1235.  
  1236. -       ( n1 n2 --- n3 )        KERNEL1
  1237.         Subtracts n2 from n1 leaving the result on the stack.
  1238.  
  1239. -1!     ( a1 -- )               KERNEL1
  1240.         Set the contents of the 16 bit quantity at a1 to -1 (all bits
  1241.         set).
  1242.  
  1243. -LINE   ( --- )                 UTILS
  1244.         A DEFERed word that deletes one line on the display at the
  1245.         cursor line.  Lines below the cursor line are scrolled up one
  1246.         line.
  1247.  
  1248. -ROT    ( n1 n2 n3 --- n3 n1 n2 ) KERNEL1
  1249.         The inverse of ROT.  Rotates the top element to third place.
  1250.  
  1251. -SCAN                   FORTH
  1252.  
  1253. -TAB    ( --- )                 DECOM
  1254.         Decrement the left margin up by 8 characters.  Used by the
  1255.         decompiler to display nested conditional structures.
  1256.  
  1257. -TRAILING ( a1 n1 --- a2 n2 )   KERNEL2
  1258.         Return the address and length of the given string ignoring
  1259.         trailing blanks.
  1260.  
  1261. .       ( n1 --- )              KERNEL2
  1262.         Display n1 as a signed 16 bit number with a trailing space.
  1263.  
  1264. ."      ( | <string> -- )       KERNEL3
  1265.         Compile the string till a " to be typed out later.  These
  1266.         strings are compiled into LIST space to conserve CODE room.
  1267.  
  1268. ."X$"                   HIDDEN
  1269.  
  1270. .(      ( -- )                  KERNEL3
  1271.         Type the following string on the terminal.
  1272.  
  1273. .(;CODE)                HIDDEN
  1274.  
  1275. .+LOOP                  HIDDEN
  1276.  
  1277. .2W                     FORTH
  1278.  
  1279. .:                      HIDDEN
  1280.  
  1281. .?DO                    HIDDEN
  1282.  
  1283. .ABORT"                 HIDDEN
  1284.  
  1285. .AGAIN                  HIDDEN
  1286.  
  1287. .ASKMACRO               HIDDEN
  1288.  
  1289. .BASE                   FORTH
  1290.  
  1291. .BEGIN                  HIDDEN
  1292.  
  1293. .BOX"   ( X Y | <string> --- )  BOXTEXT
  1294.         Used while compiling, followed by <string> which is compiled
  1295.         into the current definition. Displays <string> inside a box on
  1296.         the screen whose upper left corner is at X, Y.  Used in a COLON
  1297.         definitions as Follows: : TEXT 10 10 .BOX" This is a test" ;
  1298.  
  1299. .CASE                   HIDDEN
  1300.  
  1301. .COMMENT: ( --- )               COMMENT
  1302.         Starts a multi-line print statment. All lines following the
  1303.         ".comment:" line will be printed to the display until a
  1304.         "comment;" is encountered.
  1305.  
  1306. .COMPSTAT ( --- )               TIMESTUF
  1307.         Display the compiler status since the most recent 0COMPILER was
  1308.         performed.  Used to keep track of the performance of the
  1309.         compiler on various hardware.  See also 0COMPILER
  1310.  
  1311. .COMSPEC ( --- )                ENVIRON
  1312.         Print the current command specification including the drive and
  1313.         path.
  1314.  
  1315. .CONSTANT               HIDDEN
  1316.  
  1317. .CURFILE ( --- )                HELLO
  1318.         Display the full file path and size of the currently open file.
  1319.  
  1320. .DATE   ( --- )                 TIMER
  1321.         Get and display the DOS date.
  1322.  
  1323. .DEFER                  HIDDEN
  1324.  
  1325. .DEFINITION-CLASS       HIDDEN
  1326.  
  1327. .DEFSRC                 FORTH
  1328.  
  1329. .DO                     HIDDEN
  1330.  
  1331. .DOES>                  HIDDEN
  1332.  
  1333. .ECURSOR                HIDDEN
  1334.  
  1335. .ELAPSED ( --- )                TIMER
  1336.         Display the elapsed time in Houres, minutes, seconds, and
  1337.         hundredths since the last TIME-RESET was performed. Overflows
  1338.         at 18 hours.
  1339.  
  1340. .ELINE                  HIDDEN
  1341.  
  1342. .ELSE                   HIDDEN
  1343.  
  1344. .ENDCASE                HIDDEN
  1345.  
  1346. .ENDOF                  HIDDEN
  1347.  
  1348. .ENV    ( --- )                 ENVIRON
  1349.         Display the current contents of the environment string.
  1350.  
  1351. .EXECUTION-CLASS        HIDDEN
  1352.  
  1353. .FILE   ( --- )                 HELLO
  1354.         Display the name of the currently open file.
  1355.  
  1356. .FILE-ONCE              HIDDEN
  1357.  
  1358. .FILES  ( --- )                 FILSTAT
  1359.         Print the contents of the file system handle stack.
  1360.  
  1361. .FINISH                 HIDDEN
  1362.  
  1363. .FIRSTLINE              HIDDEN
  1364.  
  1365. .FOOT                   FORTH
  1366.  
  1367. .FPATH                  FORTH
  1368.  
  1369. .FREE   ( --- )                 UTILS
  1370.         Display the amount of dictionary space available at the
  1371.         current time.
  1372.  
  1373. .HEAD                   FORTH
  1374.  
  1375. .HELLO  ( --- )                 HELLO
  1376.         Defered word, that displays the startup message when F-PC
  1377.         begins execution. Performs .<hello> by default.
  1378.  
  1379. .HORIZONTAL             FORTH
  1380.  
  1381. .ID     ( nfa -- )              KERNEL4
  1382.         Display the variable length name whose name field address is on
  1383.         the stack. If it is shorter than its count, it is padded with
  1384.         underscores. Only valid Ascii is typed.
  1385.  
  1386. .IF                     HIDDEN
  1387.  
  1388. .IMMEDIATE              HIDDEN
  1389.  
  1390. .INST                   FORTH
  1391.  
  1392. .IS                     HIDDEN
  1393.  
  1394. .LIT                    HIDDEN
  1395.  
  1396. .LOADED ( --- )                 FILSTAT
  1397.         Print a list of all files that have been loaded.
  1398.  
  1399. .LOADLINE               FORTH
  1400.  
  1401. .LOOP                   HIDDEN
  1402.  
  1403. .ME     ( --- )                 ENVIRON
  1404.         Print the name of the program currently executing. This only
  1405.         works on DOS 3.0 and higher. If it is used on DOS 2.x no name
  1406.         will be printed.  See also ME@.
  1407.  
  1408. .MENU                   FORTH
  1409.  
  1410. .MENUBAR                FORTH
  1411.  
  1412. .NAM                    HIDDEN
  1413.  
  1414. .OF                     HIDDEN
  1415.  
  1416. .OTHER                  HIDDEN
  1417.  
  1418. .PATH   ( --- )                 ENVIRON
  1419.         Print the current directory search PATH.
  1420.  
  1421. .PFA                    HIDDEN
  1422.  
  1423. .QUOTE                  HIDDEN
  1424.  
  1425. .R      ( n1 n2 --- )           KERNEL2
  1426.         Display n1 as a signed 16 bit number right justified in a field
  1427.         of n2 spaces.
  1428.  
  1429. .REPEAT                 HIDDEN
  1430.  
  1431. .REPMAC                 HIDDEN
  1432.  
  1433. .RVOCWORDS              HIDDEN
  1434.  
  1435. .S      ( -- )                  KERNEL4
  1436.        Displays the contents of the parameter stack non destructively.
  1437.        Very useful when debugging.
  1438.  
  1439. .SEQHANDLE ( --- )              SEQREAD
  1440.         Display the filename in the current sequential file handle.
  1441.  
  1442. .SRCCR                  FORTH
  1443.  
  1444. .SRCDEF                 FORTH
  1445.  
  1446. .STATUS ( -- )                  STATUS
  1447.         Test STATV, if it is on, then display the status line at the
  1448.         top of the screen.
  1449.  
  1450. .STRING""               HIDDEN
  1451.  
  1452. .STRING"                HIDDEN
  1453.  
  1454. .STRING."               HIDDEN
  1455.  
  1456. .THEN                   HIDDEN
  1457.  
  1458. .TIME   ( --- )                 TIMER
  1459.         Get the time from DOS, and display it.
  1460.  
  1461. .UNNEST                 HIDDEN
  1462.  
  1463. .UNTIL                  HIDDEN
  1464.  
  1465. .USED   ( --- )                 UTILS
  1466.         Display the amount of dictionary space used since the last
  1467.         !USED was executed.
  1468.  
  1469. .USER-DEFER             HIDDEN
  1470.  
  1471. .USER-VARIABLE          HIDDEN
  1472.  
  1473. .VALUE                  HIDDEN
  1474.  
  1475. .VARIABLE               HIDDEN
  1476.  
  1477. .VERTICAL               FORTH
  1478.  
  1479. .VOCWORDS ( A1 --- )            WORDS
  1480.         Display the words matching, from a vocabulary.  See the source
  1481.         for WORDS for usage information.
  1482.  
  1483. .VYET                   FORTH
  1484.  
  1485. .WHILE                  HIDDEN
  1486.  
  1487. .WORD                   HIDDEN
  1488.  
  1489. .[']                    HIDDEN
  1490.  
  1491. /       ( num den -- quot )     KERNEL1
  1492.         Divide two signed single precision numbers and return the
  1493.         floored quotient.  Note that  -5 2 /  returns a value of -3 .
  1494.  
  1495. /*      ( | <text> --- )        COMMENT
  1496.         Start a group of comments until a terminating */ is
  1497.         encountered.
  1498.  
  1499. /LISTING                FORTH
  1500.  
  1501. /MOD    ( num den -- rem quot ) KERNEL1
  1502.         Divide two signed single precision numbers and return the
  1503.         floored quotient and modulus (remainder).  Note that this
  1504.         function is designed to return a modulus which has the same
  1505.         sign as the denominator (usually positive), independent of the
  1506.         sign of the denominator.
  1507.  
  1508. /NOLISTING              FORTH
  1509.  
  1510. /STRING ( a1 len n1 --- addr' len' ) KERNEL2
  1511.         Index into the string addr, len, by n1. Returns addr+n and
  1512.         len-n.
  1513.  
  1514. 0!      ( a1 -- )               KERNEL1
  1515.         Clear all 16 bits at the specified address.
  1516.  
  1517. 0<      ( n1 --- f1 )           KERNEL1
  1518.         Returns true if top is negative, ie sign bit is on.
  1519.  
  1520. 0<=     ( n1 --- f1 )           UTILS
  1521.         Return a boolean flag true if n1 is less than or equal to zero.
  1522.  
  1523. 0<>     ( n1 --- f1 )           KERNEL1
  1524.         Returns true if the top is non-zero, False otherwise.
  1525.  
  1526. 0=      ( n1 --- f1 )           KERNEL1
  1527.         Returns True if top is zero, False otherwise.
  1528.  
  1529. 0>      ( n1 --- f1 )           KERNEL1
  1530.         Returns true if top is positive.
  1531.  
  1532. 0>=     ( n1 --- f1 )           UTILS
  1533.         Return a boolean flag true if n1 is greater than or equal to
  1534.         zero.
  1535.  
  1536. 0COMPILER ( --- )               TIMESTUF
  1537.         Initialize the compiler performance monitoring tool, in
  1538.         preperation for loading a quantity of source code.  The word
  1539.         .COMPSTAT when later executed will inform you of the number of
  1540.         lines compiled, and the rate at which linew were compiled.  See
  1541.         also .COMPSTAT.
  1542.  
  1543. 0DECR                   FORTH
  1544.  
  1545. 0FL                     HIDDEN
  1546.  
  1547. 0ISTK                   HIDDEN
  1548.  
  1549. 0MAX                    FORTH
  1550.  
  1551. 1+      ( n1 --- n2 )           KERNEL1
  1552.         Increment the top of the stack by one.
  1553.  
  1554. 1-      ( n1 --- n2 )           KERNEL1
  1555.         Decrement the top of the stack by one.
  1556.  
  1557. 10TH-ELAPSED ( --- N1 )         TIMESTUF
  1558.         Return n1 the tenths of a second that have elapsed since the
  1559.         last TIME-RESET was performed.
  1560.  
  1561. 1FILE                   HIDDEN
  1562.  
  1563. 1ST-ROWCHAR             FORTH
  1564.  
  1565. 1STCOLD                 FORTH
  1566.  
  1567. 2!      ( d1 a1 --- )           KERNEL1
  1568.         Store a 32 bit value at addr.
  1569.  
  1570. 2*      ( n1 --- n2 )           KERNEL1
  1571.         Double the number on the Stack.
  1572.  
  1573. 2+      ( n1 --- n2 )           KERNEL1
  1574.         Increment the top of the stack by two.
  1575.  
  1576. 2+!     ( d1 a1 -- )            KERNEL1
  1577.         Add the double number to the contents of the double word at
  1578.         the specified address.
  1579.  
  1580. 2-      ( n1 --- n2 )           KERNEL1
  1581.         Decrement the top of the stack by two.
  1582.  
  1583. 2/      ( n1 --- n2 )           KERNEL1
  1584.         Shift the number on the stack right one bit.  Equivalent to
  1585.         division by 2 for positive numbers.
  1586.  
  1587. 2>R     ( n1 n2 --- )           KERNEL1
  1588.         Pops two values off of the parameter stack and pushes them onto
  1589.         the return stack.  It is dangerous to use this randomly!  This
  1590.         word is equivalent to: "SWAP >R >R" that is the order of the
  1591.         operator on the parameter stack is maintained when they are
  1592.         placed on the return stack.
  1593.  
  1594. 2@      ( a1 --- d1 )           KERNEL1
  1595.         Fetch a 32 bit value from addr.
  1596.  
  1597. 2CONSTANT ( d1 | <name> -- )    compile time  KERNEL3
  1598.           ( --- d1 )            run time
  1599.         Create a double number constant.
  1600.  
  1601. 2DROP   ( n1 n2 --- )           KERNEL1
  1602.         ( d1 --- )
  1603.         Drop the top two elements of the data stack.
  1604.  
  1605. 2DUP    ( n1 n2 --- n1 n2 n1 n2 ) KERNEL1
  1606.         ( d1 --- d1 d1 )
  1607.         Duplicate the top two elements of the data stack.
  1608.  
  1609. 2OVER   ( n1 n2 n3 n4 --- n1 n2 n3 n4 1n 2n )   KERNEL1
  1610.         ( d1 d2 --- d1 d2 d1 )
  1611.         Copy the second pair of numbers over the top pair.  Behaves
  1612.         like 2SWAP for 32 bit integers.
  1613.  
  1614. 2R>     ( --- n1 n2 )           KERNEL1
  1615.         Pops two values off of the return stack and pushes them onto
  1616.         the parameter stack.  It is dangerous to use this randomly!
  1617.         This word is equivalent to: R> R> SWAP that is the order of the
  1618.         operator on the return stack is maintained when they are placed
  1619.         on the parameter stack.
  1620.  
  1621. 2R@     ( --- n1 n2 )           KERNEL1
  1622.         Copies the two top values from the return stack to the
  1623.         parameter stack. Same as "R> R> 2DUP >R >R SWAP" that is the
  1624.         order of the operator on the return stack is maintained when
  1625.         they are placed on the parameter stack.
  1626.  
  1627. 2ROT    ( n1 n2 n3 n4 n5 n6 --- n3 n4 n5 n6 n1 n2 ) KERNEL1
  1628.         ( d1 d2 d3 --- d2 d3 d1 )
  1629.         Rotates top three double numbers.
  1630.  
  1631. 2SWAP   ( n1 n2 n3 n4 --- n3 n4 1n 2n )         KERNEL1
  1632.         ( d1 d2 --- d2 d1 )
  1633.         Swap the top two pairs of numbers on the stack.  You can use this
  1634.         operator to swap two 32 bit integers and preserve their meaning as
  1635.         double numbers.
  1636.  
  1637. 2VARIABLE ( | <name> -- ) compile time    KERNEL3
  1638.           ( --- a1 )      runtime
  1639.         Create a double length variable.
  1640.  
  1641. 3DROP   ( n1 n2 n3 --- )        KERNEL1
  1642.         Drop the top three elements of the data stack.
  1643.  
  1644. 3DUP    ( n1 n2 n3 --- n1 n2 n3 n1 n2 n3 ) KERNEL1
  1645.         Duplicate the top three elements of the data stack.
  1646.  
  1647. 4DUP    ( n1 n2 n3 n4 --- n1 n2 n3 n4 n1 n2 n3 n4 ) KERNEL1
  1648.         ( d1 d2 --- d1 d2 d1 d2 )
  1649.         Duplicate the top four 16 bit elements of the stack.
  1650.  
  1651. 8*      ( n1 --- n2 )           KERNEL1
  1652.         Multiply the top of the stack by 8.
  1653.  
  1654. :       ( -- )                  KERNEL3
  1655.         Defines a colon definition. The definition is hidden until it
  1656.         is completed, or the user desires recursion. The runtime for :
  1657.         adds a nesting level.
  1658.  
  1659. ;       ( -- )                  KERNEL3
  1660.         Terminates a colon definition. Compiles the runtime code to
  1661.         remove a nesting level, and changes STATE so that compilation
  1662.         will terminate.
  1663.  
  1664. ;CODE   ( -- )                  KERNEL3
  1665.         Used for defining the run time portion of a defining  word in
  1666.         low level code.
  1667.  
  1668. ;USES   ( -- )                  KERNEL3
  1669.         Similar to the traditional ;CODE except used when  run time
  1670.         code has been previously defined.
  1671.  
  1672. <       ( n1 n2 --- f1 )        KERNEL1
  1673.         Compare the top two elements on the stack as signed integers
  1674.         and return true if n1 < n2.
  1675.  
  1676. <#      ( d1 --- d1 )           KERNEL2
  1677.         Start numeric conversion. Sets the variable HLD to PAD.
  1678.  
  1679. <#IF>                   FORTH
  1680.  
  1681. <$FILE>                 FORTH
  1682.  
  1683. <'>                     FORTH
  1684.  
  1685. <.COMMENT:>             FORTH
  1686.  
  1687. <.CURFILE>              FORTH
  1688.  
  1689. <.ELAPSED>              FORTH
  1690.  
  1691. <.HELLO>                FORTH
  1692.  
  1693. <.STAT>                 FORTH
  1694.  
  1695. <=      ( n1 n2 --- f1 )        UTILS
  1696.         Less than or equal.
  1697.  
  1698. <>      ( n1 n2 --- f1 )        KERNEL1
  1699.         Returns true if the two element are not equal, else false.
  1700.  
  1701. <?PTR.READY>            FORTH
  1702.  
  1703. <BDOS>                  FORTH
  1704.  
  1705. <BOX>                   HIDDEN
  1706.  
  1707. <COMMENT:>              FORTH
  1708.  
  1709. <D.M.Y>                 FORTH
  1710.  
  1711. <DOLDEL>                HIDDEN
  1712.  
  1713. <ED>    ( --- )                 TOPEDIT
  1714.         Re-Enter the editor on the current file at the most recent edit
  1715.         line. Reads the file into memory if needed.
  1716.  
  1717. <EDONE>                 HIDDEN
  1718.  
  1719. <EQUIT>                 HIDDEN
  1720.  
  1721. <EXEC>                  HIDDEN
  1722.  
  1723. <FLOAD> ( --- )                 SEQREAD
  1724.         Primitive word that loads the file just opened.
  1725.  
  1726. <FPATH+>                FORTH
  1727.  
  1728. <GETFILE>               FORTH
  1729.  
  1730. <GETTIME> ( --- hm sh )         TIMER
  1731.         Get the system time in DOS format, HM=hours,minutes and
  1732.         SH=seconds,hundreths.  See also .TIME, .DATE
  1733.  
  1734. <GRAPHDUMMY>            FORTH
  1735.  
  1736. <HEADER>                FORTH
  1737.  
  1738. <HRENAME> ( handle1 handle2 --- return-code ) HANDLES
  1739.         Code primitive for the HRENAME. See also HRENAME.
  1740.  
  1741. <ICHAR>                 HIDDEN
  1742.  
  1743. <LEDIT>                 HIDDEN
  1744.  
  1745. <LOAD>  ( --- )                 SEQREAD
  1746.         Load the current file starting at the current file offset.
  1747.  
  1748. <LRUN>                  FORTH
  1749.  
  1750. <M/D/Y>                 FORTH
  1751.  
  1752. <MARK   ( -- a1 )               KERNEL3
  1753.         Set up for a Backwards Branch.
  1754.  
  1755. <RED>                   FORTH
  1756.  
  1757. <RESOLVE ( a1 -- )              KERNEL3
  1758.         Resolve a Backwards Branch.
  1759.  
  1760. <RUN>                   FORTH
  1761.  
  1762. <SAVE-EXE>              FORTH
  1763.  
  1764. <TO<>BL                 HIDDEN
  1765.  
  1766. <TO=BL+1                HIDDEN
  1767.  
  1768. <W.NAME>                FORTH
  1769.  
  1770. <Y-M-D>                 FORTH
  1771.  
  1772. =       ( n1 n2 --- f1 )        KERNEL1
  1773.         Returns true if the two elements on the stack are equal, False
  1774.         otherwise.
  1775.  
  1776. =:      ( n1 | <name> -- )      EQUCOLON
  1777.         Used to assign values into the body of <name>, like VARIABLEs
  1778.         or VALUEs. May be used on the command line. Typical usage is as
  1779.         follows:        34 VALUE MYVAL          \ create a VALUE
  1780.         : CHANGE_MYVAL  ( --- )                 \ define a word to
  1781.                         23 =: MYVAL ;           \ change MYVAL
  1782.  
  1783. >       ( n1 n2 --- f1 )        KERNEL1
  1784.         Compare the top two elements on the stack as signed integers
  1785.         and return true if n1 > n2.
  1786.  
  1787. >.ID                    FORTH
  1788.  
  1789. >=      ( n1 n2 --- f1 )        UTILS
  1790.         Compare n1 and n2, return a true if n1 is greater than or
  1791.         equal to n2.
  1792.  
  1793. >ATTRIB ( handle --- attrib-a1 )HANDLES
  1794.         Step to the attribute field of the handle
  1795.  
  1796. >ATTRIB8
  1797. >ATTRIB7
  1798. >ATTRIB6
  1799. >ATTRIB5
  1800. >ATTRIB4
  1801. >ATTRIB3
  1802. >ATTRIB2
  1803. >ATTRIB1 ( --- )                 UTILS
  1804.         Select a display attribute for the display you are using.
  1805.         These are DEFERed words that are setup at COLD start time to
  1806.         perform the proper function for the display card you are using.
  1807.  
  1808. >ATTRIB8                FORTH
  1809.  
  1810. >B                      FORTH
  1811.  
  1812. >BG     ( N1 --- )              COLOR
  1813.         Set the Background color to value n1.
  1814.  
  1815. >BODY   ( cfa -- pfa )          KERNEL3
  1816.         Go from code field address cfa to body address pfa.
  1817.  
  1818. >BOLD   ( --- )                 MONOCROM
  1819.         Set the display attribute to bold.
  1820.  
  1821. >BOLDBLNK ( --- )               MONOCROM
  1822.         Set the display attribute to bold blink.
  1823.  
  1824. >BOLDUL ( --- )                 MONOCROM
  1825.         Set the display attribute to bold underline.
  1826.  
  1827. >BOX                    FORTH
  1828.  
  1829. >BROWSER                FORTH
  1830.  
  1831. >BUGN   ( --- )                 COLOR
  1832.         Set the Backgound to BLUE, and Forground to Green.
  1833.  
  1834. >BUWT   ( --- )                 COLOR
  1835.         Set the Background to Green, and Forground to WHITE.
  1836.  
  1837. >COLOR  ( --- )                 COLOR
  1838.         Select hilighting for color monitor.
  1839.  
  1840. >EDATTRIB               HIDDEN
  1841.  
  1842. >FADR                   HIDDEN
  1843.  
  1844. >FG     ( N1 --- )              COLOR
  1845.         Set the Forground color to value n1.
  1846.  
  1847. >HNDLE  ( handle --- handle-a1 )HANDLES
  1848.         Step to the handel storage field of the handle array.
  1849.  
  1850. >IBM    ( -- )                  IBMCURSR
  1851.         Select the IBM display as the default display.
  1852.  
  1853. >IN     ( --- a1 )              KERNEL2
  1854.         Number of characters interpreted so far.
  1855.  
  1856. >IS     ( cfa -- data-address ) KERNEL4
  1857.        Maps a code field into a data field. If the word is in the USER
  1858.        class of words, then the data address must be calculated
  1859.        relative to the current user pointer. Otherwise it is just the
  1860.        parameter field.
  1861.  
  1862. >ISTK                   HIDDEN
  1863.  
  1864. >KEYS1                  HIDDEN
  1865.  
  1866. >KEYS2                  HIDDEN
  1867.  
  1868. >LCD    ( --- )                 COLOR
  1869.         Select the LCD display mode, that is only minimal display
  1870.         attributes are used, REVERSE only.
  1871.  
  1872. >LINE   ( n1 --- )              SEQREAD
  1873.         Step to line n1 in the current file.
  1874.  
  1875. >LINK   ( cfa -- lfa )          KERNEL3
  1876.         Go from code field address cfa to link field address lfa.
  1877.  
  1878. >MARK   ( -- a1 )               KERNEL3
  1879.         Set up for a Forward Branch.
  1880.  
  1881. >MENU                   FORTH
  1882.  
  1883. >MONO   ( --- )                 MONOCROM
  1884.         Set the ATTRIB words to select various monochrome attributes.
  1885.  
  1886. >NAM    ( handle --- name-string-a1 ) HANDLES
  1887.         Step to the null terminated name field of the handle
  1888.  
  1889. >NAME   ( cfa -- nfa )          KERNEL3
  1890.         Go from code field address cfa to name field address nfa.
  1891.  
  1892. >NAME.ID                FORTH
  1893.  
  1894. >NEST   ( --- a1 )              KERNEL1
  1895.         The address of the NEST routine.
  1896.  
  1897. >NEXT   ( --- a1 )              KERNEL1
  1898.         Label of the NEXT sequence.  This is the location we jump to
  1899.         when we are NOT using in-line NEXT.
  1900.  
  1901. >NONE
  1902.  
  1903. >NONEBG                 FORTH
  1904.  
  1905. >NORM   ( --- )                 MONOCROM
  1906.         Set display attributes to none, or normal.
  1907.  
  1908. >NORMBG                 FORTH
  1909.  
  1910. >PATHEND-1              HIDDEN
  1911.  
  1912. >PATHEND                HIDDEN
  1913.  
  1914. >PATHEND"               HIDDEN
  1915.  
  1916. >PRE    ( --- )                 PASM
  1917.         Select the PREFIX assembler mode, and saves the previous prefix
  1918.         flag on the return stack for later restoral by PRE>.
  1919.  
  1920. >R      ( n1 --- )              KERNEL1
  1921.         Pops a value off of the parameter stack and pushes it onto
  1922.         return stack.  It is dangerous to use this randomly!
  1923.  
  1924. >RDWT   ( --- )                 COLOR
  1925.         Set the Background to RED, and Forground to WHITE.
  1926.  
  1927. >RESOLVE ( a1 -- )              KERNEL3
  1928.         Resolve a Forward Branch.
  1929.  
  1930. >REV    ( --- )                 UTILS
  1931.         Set the display attribute to reverse.
  1932.  
  1933. >REVBLNK ( --- )                MONOCROM
  1934.         Set the display attribute to reverse blink.
  1935.  
  1936. >REVERSE                FORTH
  1937.  
  1938. >TO<>BL                 HIDDEN
  1939.  
  1940. >TO=BL                  HIDDEN
  1941.  
  1942. >TYPE   ( a1 len -- )           KERNEL3
  1943.         TYPE for multitasking systems.
  1944.  
  1945. >UL     ( --- )                 MONOCROM
  1946.         Set the display attribute to underline.
  1947.  
  1948. >VIEW   ( cfa -- vfa )          KERNEL3
  1949.         Go from code field address cfa to view field address vfa.
  1950.  
  1951. >VIEWFILE ( cfa --- offset a1 ) VIEW
  1952.         Locate the file which was used to compile word CFA, and return
  1953.         its string in PAD as A1 a counted string, and OFFSET the offset
  1954.         into the file where the word definition starts.
  1955.  
  1956. >XBUF                   HIDDEN
  1957.  
  1958. ?       ( a1 --- )              UTILS
  1959.         Display the contents of the 16 bit memory location a1 as a
  1960.         signed value.
  1961.  
  1962. ?.LOADLINE              FORTH
  1963.  
  1964. ?.PRLINES               HIDDEN
  1965.  
  1966. ?<MARK  ( -- f1 a1 )            KERNEL3
  1967.         Set up for a Backwards Branch with Error Checking.
  1968.  
  1969. ?<RESOLVE ( f1 a1 -- )          KERNEL3
  1970.         Resolve a backwards Branch with Error Checking.
  1971.  
  1972. ?>MARK  ( -- f1 a1 )            KERNEL3
  1973.         Set up a forward Branch with Error Checking.
  1974.  
  1975. ?>RESOLVE ( f1 a1 -- )          KERNEL3
  1976.         Resolve a forward Branch with Error Checking.
  1977.  
  1978. ?ADDMAC                 HIDDEN
  1979.  
  1980. ?ALREADY_DEF            FORTH
  1981.  
  1982. ?BASE_RESTORE           FORTH
  1983.  
  1984. ?BRANCH ( f1 --- )              KERNEL1
  1985.         Performs a conditional branch.  If the top of the parameter
  1986.         stack in True, take the branch.  If not, skip over the branch
  1987.         address which is inline.
  1988.  
  1989. ?CHAR                   HIDDEN
  1990.  
  1991. ?CODENAME               FORTH
  1992.  
  1993. ?COLORIZE               FORTH
  1994.  
  1995. ?COMP   ( --- )                 SAVEREST
  1996.         Verify F-PC is in COMPILE state.  Issue an error message if
  1997.         Forth is not in COMPILE state.
  1998.  
  1999. ?CONDITION ( f1 -- )            KERNEL3
  2000.         Simple compile time error checking. Usually adequate.
  2001.  
  2002. ?CONSTANT.*             FORTH
  2003.  
  2004. ?CONTROL                HIDDEN
  2005.  
  2006. ?CR     ( -- )                  KERNEL4
  2007.         Break the line at the cursor, if we have reached the right
  2008.         margin as specified by RMARGIN.
  2009.  
  2010. ?CS:    ( --- seg )             KERNEL2
  2011.         leave Forths Code Segment on the stack.
  2012.  
  2013. ?CSP    ( -- )                  KERNEL3
  2014.         Issue error message if stack has changed since the most recent
  2015.         !CSP.
  2016.  
  2017. ?CURSOR-MOVE            HIDDEN
  2018.  
  2019. ?DARK   ( --- )                 UTILS
  2020.         Conditionally perform a DARK if no key is waiting at the
  2021.         keyboard.
  2022.  
  2023. ?DEBUG                  HIDDEN
  2024.  
  2025. ?DEF.EXT ( --- )                HANDLES
  2026.         If the specified file name has no "." indicating the extension,
  2027.         then supply one from the default.
  2028.  
  2029. ?DEFATTRIB              FORTH
  2030.  
  2031. ?DEFER.*                FORTH
  2032.  
  2033. ?DIR-DOWN               HIDDEN
  2034.  
  2035. ?DIR-UP                 HIDDEN
  2036.  
  2037. ?DIR-WINDOW             HIDDEN
  2038.  
  2039. ?DNEGATE ( d1 d2 --- d3 )       KERNEL1
  2040.         Negate the double number if the top is negative.
  2041.  
  2042. ?DO     ( limit start -- )      KERNEL3
  2043.         Same as DO except that the loop will not be executed if start =
  2044.         limit.
  2045.  
  2046. ?DOINGMAC ( --- f1 )            UTILS
  2047.         Return a boolean flag TRUE if a macro is in the process of
  2048.         being executed, else return FALSE.
  2049.  
  2050. ?DOMAC                  HIDDEN
  2051.  
  2052. ?DOMAC1                 HIDDEN
  2053.  
  2054. ?DOMKEY                 FORTH
  2055.  
  2056. ?DOSIO  ( --- f1 )              UTILS
  2057.         Return a boolean flag TRUE if we are currently using DOS for
  2058.         all I/O, rather than direct screen output.
  2059.  
  2060. ?DOSTOP                 FORTH
  2061.  
  2062. ?DRIVE.EXTRACT ( handle --- drive-value ) PATHSET
  2063.         Given handle, return drive-value, the drive specified in
  2064.         handle, or return the current drive if no drive was specified
  2065.         in handle.
  2066.  
  2067. ?DRIVE.PREPEND ( drive-value handle --- ) PATHSET
  2068.         Given drive-value and handle, prepend the drive-value into
  2069.         handle, as letter followed by ":".
  2070.  
  2071. ?DROP                   FORTH
  2072.  
  2073. ?DUP    ( n1 --- n1 n1<>0 | n1=0 ) KERNEL1
  2074.         Duplicate the top of the stack if it is non-zero.
  2075.  
  2076. ?ENOUGH ( n1 --- )              UTILS
  2077.         Test the number of items on the data stack, if there are more
  2078.         than n1 items then continue.  If there are less than n1 items,
  2079.         abort with an error.
  2080.  
  2081. ?ERROR  ( a1 n1 f1 --- )        KERNEL3
  2082.         Maybe indicate an error. If f1 is true then display the error
  2083.         message a1,n1, else discard a1,n1. Change this to alter ABORT".
  2084.  
  2085. ?ES:    ( --- )                 KERNEL2
  2086.         Return the current value of the ES register on the stack.
  2087.  
  2088. ?EXEC   ( --- )                 COMMENT
  2089.         ABORT if Forth is not currently in EXECUTION STATE with an
  2090.         error message.
  2091.  
  2092. ?EXIT   ( f1 --- )              KERNEL1
  2093.         If boolean f1 is true then perform EXIT above else continue
  2094.         executing the current definition.
  2095.  
  2096. ?FILEOPEN ( --- )               VIEW
  2097.         Verify a file is open, give an error message if no file is
  2098.         open.
  2099.  
  2100. ?FILLBUFF ( --- )               SEQREAD
  2101.         Re-fill the input buffer if it needs it.
  2102.  
  2103. ?FIX-CURSOR             FORTH
  2104.  
  2105. ?FUNC                   HIDDEN
  2106.  
  2107. ?GETEXPFILE             FORTH
  2108.  
  2109. ?HELP-DO                HIDDEN
  2110.  
  2111. ?IN-EMPTY               FORTH
  2112.  
  2113. ?INNAME                 FORTH
  2114.  
  2115. ?INSERT-TOGGLE          HIDDEN
  2116.  
  2117. ?KEYPAUSE ( --- )               UTILS
  2118.         Wait for a key to be pressed at the keyboard. If the key is an
  2119.         ESC, abort. If the key is any other key, wait for an additional
  2120.         key.  If the additional key is anything but an ESC, continue
  2121.         execution.  If the second key is an ESC, then abort.
  2122.  
  2123. ?LDONE                  HIDDEN
  2124.  
  2125. ?LEAVE  ( f1 -- )               KERNEL3
  2126.         Immediately exit a DO-LOOP if the flag is true; else continue
  2127.         looping.
  2128.  
  2129. ?LINE   ( n1 -- )               KERNEL4
  2130.         Break the line at the cursor if there are less than n1
  2131.         characters till RMARGIN is encountered.
  2132.  
  2133. ?LISTING                FORTH
  2134.  
  2135. ?LMATCH                 HIDDEN
  2136.  
  2137. ?LOADED ( | <name> --- f1 )     NEEDS
  2138.         Have we already loaded the file specified by NAME? Return a
  2139.         boolean F1 true if we have.
  2140.  
  2141. ?LOADED,                FORTH
  2142.  
  2143. ?LOADING                FORTH
  2144.  
  2145. ?MENU-DO                HIDDEN
  2146.  
  2147. ?MENUBAR#               HIDDEN
  2148.  
  2149. ?MENUKEY                FORTH
  2150.  
  2151. ?MISSING ( f1 -- )              KERNEL3
  2152.         Tell user the word does not exist.
  2153.  
  2154. ?MOUSEINIT              HIDDEN
  2155.  
  2156. ?NEGATE ( n1 n2 --- n3 )        KERNEL1
  2157.         Negate the second element if the top is negative.
  2158.  
  2159. ?NOLOADED,              FORTH
  2160.  
  2161. ?NOUSER                 FORTH
  2162.  
  2163. ?OPEN.ERROR             FORTH
  2164.  
  2165. ?PAGE   ( --- )                 UTILS
  2166.         Output a page command if we are not already on the top of a new
  2167.         page.
  2168.  
  2169. ?PAGE-DOWN              HIDDEN
  2170.  
  2171. ?PAGE-UP                HIDDEN
  2172.  
  2173. ?PATH-WINDOW            HIDDEN
  2174.  
  2175. ?PREPEND.VPATH ( a1 --- a1 )    PATHSET
  2176.         Given a handle a1, prepend to the name in the handle, the
  2177.         current VIEW directory path.
  2178.  
  2179. ?PRINTER.READY ( --- f1 )       KERNEL2
  2180.         A DEFERed word that returns a boolean flag true if the system
  2181.         printer is online and ready for printing.  This word gets
  2182.         defered to TRUE if we are printing to a disk file.
  2183.  
  2184. ?REPMAC                 HIDDEN
  2185.  
  2186. ?REPMAC1                HIDDEN
  2187.  
  2188. ?SCROLL-LEFT            HIDDEN
  2189.  
  2190. ?SCROLL-RIGHT           HIDDEN
  2191.  
  2192. ?SCROLL-DN              HIDDEN
  2193.  
  2194. ?SCROLL-UP              HIDDEN
  2195.  
  2196. ?SELECT-MENU            HIDDEN
  2197.  
  2198. ?SEQRANGE               FORTH
  2199.  
  2200. ?SET-CURSOR             FORTH
  2201.  
  2202. ?SETDIR                 HIDDEN
  2203.  
  2204. ?SHOWSTACK              FORTH
  2205.  
  2206. ?STACK  ( -- )                  KERNEL3
  2207.         Check for parameter stack underflow or overflow and issue
  2208.         appropriate error message if detected.
  2209.  
  2210. ?START/STOPMAC          HIDDEN
  2211.  
  2212. ?SYSERROR               HIDDEN
  2213.  
  2214. ?TOTAL.*
  2215. ?UDEFER.*
  2216. ?DEFER.*
  2217. ?CONSTANT.*
  2218. ?UDEFER.*               FORTH
  2219. ?UVARIABLE.*
  2220. ?VARIABLE.*
  2221. ?VALUE.*
  2222. ?:.*
  2223. ?CODE.*
  2224. ?*.*    ( --- )                 WORDS
  2225.         Test words used by WORDS to recognize a group of words to
  2226.         display. These are not used by you the user, they are only
  2227.         available to show you the classes of words you can look at with
  2228.         WORDS.
  2229.  
  2230. ?TOTALWORDS             FORTH
  2231.  
  2232. ?UNLINK                 HIDDEN
  2233.  
  2234. ?UNTIL  ( f1 --- )              KERNEL1
  2235.         A special version of ?BRANCH that is used to mark a return
  2236.         point for the decompiler.
  2237.  
  2238. ?UPPERCASE ( a1 --- a1 )        KERNEL2
  2239.         Convert the counted string at a1 to uppercase if CAPS is TRUE.
  2240.  
  2241. ?USER                   FORTH
  2242.  
  2243. ?VMODE  ( --- n1 )              VIDEO
  2244.         Read the current video mode from the BIOS. A value of 7 is
  2245.         normal for monochrome, and a value of 2 is a CGA board.  Also
  2246.         sets the number of columns in the COLS VALUE and the number of
  2247.         rows in the ROWS VALUE.
  2248.  
  2249. ?W.NAME                 FORTH
  2250.  
  2251. ?W.TEST                 FORTH
  2252.  
  2253. ?WHILE  ( f1 --- )              KERNEL1
  2254.         A special version of ?BRANCH that is used to mark a return
  2255.         point for the decompiler.
  2256.  
  2257. ?WORDTYPE               FORTH
  2258.  
  2259. @       ( a1 --- n1 )           KERNEL1
  2260.         Fetch a 16 bit value from addr.
  2261.  
  2262. @>      ( | <name> -- n1)       EQUCOLON
  2263.         Fetch the value n1 from the body field of <name> to the stack.
  2264.         Typically used to modify a VALUE or VARIABLE. May be used on
  2265.         the command line.
  2266.  
  2267. @L      ( seg adr - n1 )        KERNEL2
  2268.         load word long from seg and adr.
  2269.  
  2270. @REL>ABS ( CFA --- a1 )         KERNEL4
  2271.         Given CFA the CODE FILED ADDRESS of an F-PC definition, return
  2272.         the address a1 of the code function used to perform the
  2273.         definition. This word is normally NOT used on CODE words, it is
  2274.         instead used on COLON definitions, VARIABLES, CONSTANTS,
  2275.         VALUES, etc. to locate the actual code function used to perform
  2276.         the selected class of words.  This word assumes the first byte
  2277.         of the cfa is a JMP or CALL instrunction and is followed
  2278.         immediately by two bytes of RELATIVE address which @REL>ABS
  2279.         converts to an absolute address.
  2280.  
  2281. A: B: C: D:     ( --- )         KERNEL4
  2282.         Select drive A:, B:, C:, or D: as the default drive.
  2283.  
  2284. A;      ( ---- )                PASM
  2285.         Complete the compiling of the current line of assembly
  2286.         instructions.  This word is normally executed automatically at
  2287.         the end of a line of assembly language. The user need only use
  2288.         this word when creating MACROS.  See PASM for an example of
  2289.         a macro for NEXT.
  2290.  
  2291. A;!                     FORTH
  2292.  
  2293. ABORT   ( -- )                  KERNEL3
  2294.         Clear the data stack and QUIT; no message is displayed.
  2295.  
  2296. ABORT"  ( f1 | <message>" -- )  KERNEL3
  2297.         If the flag is true, issue <message> and ABORT.
  2298.  
  2299. ABS     ( n1 --- n2 )           KERNEL1
  2300.         Return the absolute value of the 16 bit integer on the stack
  2301.  
  2302. ADEBUG  ( A1 --- )              DEBUG
  2303.         Set the CFA=a1 as the current word to be debugged.
  2304.  
  2305. AFT                     FORTH
  2306.  
  2307. AGAIN   ( -- )                  KERNEL3
  2308.         Unconditional jump to just after BEGIN in a BEGIN ... AGAIN
  2309.         loop.
  2310.  
  2311. ALETTER                 HIDDEN
  2312.  
  2313. ALIAS   ( a1 | <name> --- )     UTILS
  2314.         Define a new header whose CODE FIELD POINTER points to a1. This
  2315.         word has the effect of creating another name for an existing
  2316.         definition, both names will compile the same OLDER word when
  2317.         compiling.  This word has NO EFFECT on CODE space or LIST
  2318.         space.
  2319.  
  2320. ALIGN   ( -- )                  KERNEL3
  2321.         Used to force even addresses. A noop on the 8086.
  2322.  
  2323. ALLOC   ( n1 --- n2 n3 n4 )     KERNEL2
  2324.         Allocate n1 16 byte units from DOS.  Returns n2 the physical
  2325.         segment number of the start of the space allocated, but only if
  2326.         the allocate succeeds.  returns n3 the largest number of 16
  2327.         byte segments that could have been allocated, and n4=8 if the
  2328.         ALLOC FAILED.  If n4 is not 8, then discard n3 and use n2 to
  2329.         point to the allocated space.  This space must be accessed with
  2330.         the L@, L!, LFILL, CMOVEL> and CMOVEL operators.  the returned
  2331.         value n2 can later be used to DEALLOCate the space back to DOS
  2332.         when you are done using it.
  2333.  
  2334. ALLOT   ( n1 -- )               KERNEL3
  2335.         Allocate more space in the dictionary.
  2336.  
  2337. AND     ( n1 n2 --- n3 )        KERNEL1
  2338.         Returns the bitwise AND of n1 and n2 on the stack.
  2339.  
  2340. ANEW    ( | <name> -- )         KERNEL3
  2341.         Define A NEW definition <name>.  If <name> already exists, then
  2342.         we FORGET it before making the new one.  A nice utility to
  2343.         allow re-loading a file again and again for debugging purposes.
  2344.         I don't know where this first originated, but I learned of it
  2345.         from RAY ISAAC at CALOS, a real neat trick.
  2346.  
  2347. ARRAY                   FORTH
  2348.  
  2349. ARUNSAVE                FORTH
  2350.  
  2351. ASCII   ( | <char> -- n1 )      KERNEL3
  2352.         Compile the next character in the input stream as a literal
  2353.         ASCII integer.
  2354.  
  2355. ASSEMBLER ( --- )               KERNEL3
  2356.         The VOCABULARY that contains all of the assembler definitions.
  2357.  
  2358. ASSOCIATIVE:            HIDDEN
  2359.  
  2360. AT      ( col row --- )         UTILS
  2361.         A special defered word that moves the display cursor to the COL
  2362.         and ROW specified in preperation for displaying text.  The
  2363.         system variables #OUT and #LINE are automatically adjusted by
  2364.         this word without your defered function having to keep track of
  2365.         them.
  2366.  
  2367. AT."                    HIDDEN
  2368.  
  2369. AT?                     FORTH
  2370.  
  2371. ATBL    ( --- a1 )              KERNEL2
  2372.         A table of character values 256 bytes in size. The UPC and
  2373.         UPPERCASE words use this table when performing case conversion.
  2374.         The values in this table can be changed if you want to do some
  2375.         special type of character translation.
  2376.  
  2377. ATTRIB  ( --- a1 )              VIDEO
  2378.         A variable that holds the value of the current display
  2379.         attributes. The value 7 is the default for normal video.
  2380.  
  2381. AUTOCLEAR               HIDDEN
  2382.  
  2383. AUTOEDITOFF ( --- )             EDITERR
  2384.         Disable automatic entry into the editor when a compile error
  2385.         occurs.  The error message is displayed on the screen but the
  2386.         editor is not invoked.
  2387.  
  2388. AUTOEDITON ( --- )              EDITERR
  2389.         Turn on the automatic entry into the editor when a compile
  2390.         error is detected.  The edit cursor is placed in the editor at
  2391.         the error point.
  2392.  
  2393. AUTOSAVEON ( --- )              SEDITOR
  2394.         Enable the automatic save of changes to a file after ten
  2395.         minutes of keyboard in-activity.  The ten minute delay is
  2396.         configurable with the VALUE AUTOSAVE-MINUTES.  The default mode
  2397.         is AUTOSAVEON. See also AUTOSAVEOFF.
  2398.  
  2399. AUTOSAVEOFF ( --- )             SEDITOR
  2400.         Disable the automatic saving of changes after a period of
  2401.         keyboard in-activity.  You can walk away from the keyboard
  2402.         forever and the editor will NEVER automatically save your
  2403.         changes.
  2404.  
  2405. AUTOSAVE-MINUTES ( --- n1 )     SEDITOR
  2406.         A VALUE which returns the number of minutes SED will wait after
  2407.         the last keystroke before automatically saving any changes you
  2408.         may have made to the current edit file.
  2409.  
  2410. B       ( --- )                 VIEW
  2411.         Backup 16 lines in current file and display a section of the
  2412.         file.
  2413.  
  2414. B/FNAM                  HIDDEN
  2415.  
  2416. B/HCB   ( --- n1 )   pronounced bytes per handle control block
  2417.                                 HANDLES
  2418.         A CONSTANT that returns the number of byte used to make a
  2419.         handle with the HANDLE word.
  2420.  
  2421. B>SEC   ( D1 - N1 )             TIMER
  2422.         Convert the BINARY time d1 to seconds. Overflows at 18 hours.
  2423.  
  2424. B>T     ( d1 --- d2 )           TIMER
  2425.         Convert the d1 BINARY time value to d2 the DOS time format.
  2426.  
  2427. BACK-UP                 FORTH
  2428.  
  2429. BACKSPACES ( n1 --- )           KERNEL2
  2430.         Send a set of Backspaces to the terminal.
  2431.  
  2432. BACKUPOFF ( --- )               EDITSTUF
  2433.         Turn off the feature of SED to automatically create backup
  2434.         copies of your files when you start an edit.  You will be
  2435.         editing the original and ONLY copy of your file, and will NOT
  2436.         be able to go back to the previous edited version of a file you
  2437.         change.  This switch is normally used only when working on
  2438.         floppys where there is no room for a backup copy.
  2439.  
  2440. BACKUPON ( --- )                EDITSTUF
  2441.         Enable the feature of SED to automatically create backup copies
  2442.         of your files when you start an edit.  This is the normal mode,
  2443.         and allows you to go back to the previous edited version of a
  2444.         changed file if a serious error occurs.
  2445.  
  2446. BADMOUSE                HIDDEN
  2447.  
  2448. BASE    ( --- a1 )              KERNEL2
  2449.         The current numeric base for number input output.
  2450.  
  2451. BCR     ( --- )                 BOXTEXT
  2452.         pronounced box carraige return.
  2453.         After creating a box on the screen with BOX&FILL, the cursor is
  2454.         placed automatically on the first empty line inside the box.
  2455.         This word places the cursor down one line and to the left edge
  2456.         inside the box once for each time it is performed. here is an
  2457.         example:
  2458.               : TESTBOX ( --- ) 20 06
  2459.                         40 10 BOX&FILL
  2460.                         ." This is displayed on the first line."  BCR
  2461.                         ." This is on the second line."           BCR
  2462.                         ." This is on the third line of the box." ;
  2463.  
  2464. BDOS    ( n1 func# --- al )     KERNEL2
  2465.         Load up the registers and do a DOS system call. return the
  2466.         result placed in the A register on the stack.
  2467.  
  2468. BDOS2                   FORTH
  2469.  
  2470. BEEP    ( --- )                 KERNEL2
  2471.         Ring the bell on the terminal by emiting the value 7.
  2472.  
  2473. BEEPDURATION            FORTH
  2474.  
  2475. BEEPFREQ                FORTH
  2476.  
  2477. BEGIN   ( -- )                  KERNEL3
  2478.         Used in the form    BEGIN ... AGAIN,
  2479.                         or  BEGIN ... flag UNTIL,
  2480.                         or  BEGIN ... flag WHILE ... REPEAT
  2481.  
  2482. BEHEAD                  FORTH
  2483.  
  2484. BEHEADABLE              FORTH
  2485.  
  2486. BELL    ( --- c1 )              KERNEL2
  2487.         Return the value 7, an Ascii BELL char.
  2488.  
  2489. BETWEEN ( n1 n2 n3 --- f1 )     KERNEL1
  2490.         Return true if n2 <= n1 <= n3, otherwise false.
  2491.  
  2492. BGSTUFF ( --- )                 KERNEL2
  2493.         A DEFERed word chain, that contains operations that need to be
  2494.         performed periodically while waiting for a key from the
  2495.         keyboard. Words included in the chain must preserve and restore
  2496.         the stacks to the state they found them prior to their
  2497.         execution.  Words in the chain must also return quickly to
  2498.         prevent excessive delays in user response.
  2499.  
  2500. BIG-CURSOR ( --- )              IBMCURSR
  2501.         Set the cursor to a block cursor.
  2502.  
  2503. BIOSBKSAVE              FORTH
  2504.  
  2505. BIOSCHAR ( --- a1 )             KERNEL2
  2506.         A VARIABLE that holds the keycode and scancode of the most
  2507.         recent BIOSKEY?.
  2508.  
  2509. BIOSKEY ( --- n1 )              KERNEL2
  2510.         Wait for a key to be pressed on the keyboard, and return the
  2511.         key as n1 containing the ascii code in the lower byte and the
  2512.         scan clde in the upper byte.
  2513.  
  2514. BIOSKEY? ( --- f1 )             KERNEL2
  2515.         Returns a true flag if a key has been pressed and is waiting to
  2516.         be picked up. You can in effect look ahead at the key by
  2517.         looking at the variable BIOSCHAR which holds the scanned key
  2518.         that is waiting.
  2519.  
  2520. BIOSKEYVAL ( --- a1 )           KERNEL2
  2521.         A VARIABLE that holds the actual bois key value returned on the
  2522.         most recent BIOSKEY operation.  This value contains both the
  2523.         ascii value and the scancode for the key.
  2524.  
  2525. BL      ( --- c1 )              KERNEL2
  2526.         Return hex 20, decimal 32 the value of an Ascii space.
  2527.  
  2528. BLACK   ( --- n1 )              COLOR
  2529.         A CONSTANT that returns the value for color black used on a
  2530.         color monitor.
  2531.  
  2532. BLACK-ON-WHITE ( --- )          MONOCROM
  2533.         Select BLACK characters on a WHITE background rather than the
  2534.         normal WHITE on BLACK.  This is mostly useful for true white
  2535.         phosphor monitors.
  2536.  
  2537. BLANK   ( a1 n1 --- )           KERNEL2
  2538.         Fill the string with blanks
  2539.  
  2540. BLANK.COLOR             FORTH
  2541.  
  2542. BLANKING                FORTH
  2543.  
  2544. BLANKOFF ( --- )                SAVESCR
  2545.         Disable blanking when typing to the display in fast mode on a
  2546.         color monitor. The CGA board needs blanking to reduce the snow
  2547.         effect, but EGA/VGA do not.
  2548.  
  2549. BLANKON ( --- )                 SAVESCR
  2550.         Enable blanking when typing to the display in fast mode on a
  2551.         color monitor. The CGA board needs this to reduce the snow
  2552.         effect, but EGA/VGA do not.
  2553.  
  2554. BLINE                   HIDDEN
  2555.  
  2556. BLUE    ( --- n1 )              COLOR
  2557.         Return the color value for BLUE.
  2558.  
  2559. BODY>   ( pfa -- cfa )          KERNEL3
  2560.         Go from body address pfa to code field address cfa.
  2561.  
  2562. BOOT    ( --- )                 KERNEL4
  2563.         The very first high level word executed during cold start.
  2564.  
  2565. BOUNDS  ( a1 n1 --- a2 a3 )     KERNEL1
  2566.         Given address a1 and length n1, return a2 and a3 the boundry
  2567.         addresses for DO ... LOOP.
  2568.  
  2569. BOX     ( x y x' y' --- )       BOXTEXT
  2570.         Draws a box like BOX&FILL, but does not fill the box with
  2571.         blanks. See also BOX&FILL.
  2572.  
  2573. BOX&FILL ( x y x' y' --- )      BOXTEXT
  2574.         Draw a box on the screen from x,y the top left, to x',y' the
  2575.         lower right and clear the inside to blanks.  the cursor is then
  2576.         placed in the upper left corner of the box in preperation for a
  2577.         ." . Use BCR to perform a BOX CR down and to the left edge of
  2578.         the box for the next line.
  2579.  
  2580. BRANCH  ( --- )                 KERNEL1
  2581.         Performs an unconditional branch.  Notice that we are using
  2582.         absolute addresses insead of relative ones. (fast)
  2583.  
  2584. BREAK                   FORTH
  2585.  
  2586. BROWN   ( --- n1 )              COLOR
  2587.         Return the color value for BROWN.
  2588.  
  2589. BROWSE                  FORTH
  2590.  
  2591. BS      ( --- c1 )              KERNEL2
  2592.         Return the value 8, an Ascii Back Space.
  2593.  
  2594. BS-IN                   FORTH
  2595.  
  2596. BUFSIZE-INIT            FORTH
  2597.  
  2598. BUG     ( --- )                 VOCABS
  2599.         vocabulary stack -> ( voc1 voc2 -- bug voc2 | current = ? )
  2600.         The BUG vocabulary, sets CONTEXT to BUG when executed.
  2601.  
  2602. BUILD-DATE              FORTH
  2603.  
  2604. BUILD-HM                FORTH
  2605.  
  2606. BUILD-SH                FORTH
  2607.  
  2608. BUILD-TIME              FORTH
  2609.  
  2610. BX                      HIDDEN
  2611.  
  2612. BY                      HIDDEN
  2613.  
  2614. BYE     ( -- )                  KERNEL4
  2615.         Returns control to DOS. Performs the defered word BYEFUNC
  2616.         before actually leaving.
  2617.  
  2618. BYEFUNC ( --- )                 KERNEL4
  2619.         A defered word which normally contains NOOP, provided wo you
  2620.         can specify a function to be performed before leaving back to
  2621.         DOS.
  2622.  
  2623. BYTES_SRCH              HIDDEN
  2624.  
  2625. C!      ( b1 a1 --- )           KERNEL1
  2626.         Store 8 bit value b1 at address a1.
  2627.  
  2628. C!L     ( b1 seg a1 --- )       KERNEL2
  2629.         Store the 8 bit value b1 into the long address specified by seg
  2630.         and a1.
  2631.  
  2632. C+!     ( b1 a1 --- )           KERNEL1
  2633.         Increment the byte value at a1 by n1. This is equivalent the
  2634.         following: "DUP C@ ROT + SWAP C!" but much faster.
  2635.  
  2636. C,      ( char -- )             KERNEL3
  2637.         Compile the 8 bit value char into the CODE area. The next
  2638.         available byte location is used as specified by DP, and DP is
  2639.         then incremented. Same as , except uses an 8-bit value.
  2640.  
  2641. C.ID                    FORTH
  2642.  
  2643. C@      ( a1 --- b1 )           KERNEL1
  2644.         Fetch the 8 bit value b1 from addrress a1.
  2645.  
  2646. C@L     ( seg a1 - b1 )         KERNEL2
  2647.         Push the 8 bit value b1 located at the long address specified
  2648.         by seg and a1.
  2649.  
  2650. CALLS   ( | <name> --- )        REF
  2651.         An ALIAS for REF.
  2652.  
  2653. CAPS    ( --- a1 )              KERNEL2
  2654.         If true, then convert names to upper case
  2655.  
  2656. CAPS-COMP ( a1 a2 n1 --- f1 )   KERNEL2
  2657.         The code on this screen handles the case where case is not
  2658.         significant.  Each character is converted to upper case before
  2659.         the comparison is made.  Thus, lower case a and upper case A
  2660.         are considered identical.
  2661.  
  2662. CASE    ( -- )                  CASE
  2663.         Start a CASE statment, as follows:
  2664.  
  2665. CC-REST                 HIDDEN
  2666.  
  2667. CC-SAVE                 HIDDEN
  2668.  
  2669. CCR                     FORTH
  2670.  
  2671. CD      ( | <filespec> --- )    EXEC
  2672.         A pseudonym for CHDIR. See also CHDIR.
  2673.  
  2674. CDATE                   FORTH
  2675.  
  2676. CFA_VIEW                FORTH
  2677.  
  2678. CFGHNDL                 FORTH
  2679.  
  2680. CHAR                    FORTH
  2681.  
  2682. CHARBUTTON              FORTH
  2683.  
  2684. CHARCOL                 FORTH
  2685.  
  2686. CHARLINE                FORTH
  2687.  
  2688. CHARREAD ( --- c1 )             SEQREAD
  2689.         Read a character c1 from the current file.
  2690.  
  2691. CHCOL                   FORTH
  2692.  
  2693. CHDIR   ( | <filespec> --- )    EXEC
  2694.         Change the directory to the directory specified by filespec.
  2695.  
  2696. CHROW                   FORTH
  2697.  
  2698. CLEARMEM                HIDDEN
  2699.  
  2700. CLEAR_LABELS            FORTH
  2701.  
  2702. CLOSE   ( --- )                 SEQREAD
  2703.         A pseudonym for SEQDOWN. See also SEQDOWN.
  2704.  
  2705. CLOSEALL                FORTH
  2706.  
  2707. CLR-COLON               HIDDEN
  2708.  
  2709. CLR-CONSTANT            HIDDEN
  2710.  
  2711. CLR-DEFER               HIDDEN
  2712.  
  2713. CLR-HCB ( a1 --- )              HANDLES
  2714.         Clear the handle a1 to empty, it is erased and marked as a
  2715.         closed file.
  2716.  
  2717. CLR-OTHER               HIDDEN
  2718.  
  2719. CLR-UDEFER              HIDDEN
  2720.  
  2721. CLR-UVARIABLE           HIDDEN
  2722.  
  2723. CLR-VALUE               HIDDEN
  2724.  
  2725. CLR-VARIABLE            HIDDEN
  2726.  
  2727. CLS     ( --- )                 UTILS
  2728.         An ALIAS for DARK.
  2729.  
  2730. CMDBUF                  HIDDEN
  2731.  
  2732. CMDLEN                  HIDDEN
  2733.  
  2734. CMDPATH                 HIDDEN
  2735.  
  2736. CMOVE   ( a1 a2 n1 --- )        KERNEL1
  2737.         Move a set of bytes from the from address to the to address.
  2738.         The number of bytes to be moved is count.  The bytes are moved
  2739.         from low address to high address, so overlap is possible and in
  2740.         fact sometimes desired.
  2741.  
  2742. CMOVE>  ( a1 a2 n1 --- )        KERNEL1
  2743.         The same as CMOVE above except that bytes are moved in the
  2744.         opposite direction, ie from high addresses to low addresses.
  2745.  
  2746. CMOVEL  ( sseg sptr dseg dptr cnt -- ) KERNEL2
  2747.         Move the character block long from source seg sseg and sptr, to
  2748.         destination seg dseg and dptr for length count.
  2749.  
  2750. CMOVEL> ( from-seg from-offset to-seg to-offset length --- ) KERNEL2
  2751.         Move length of data from from-seg and from-offset to to-seg and
  2752.         to-offset.  If the move crosses a 64k segment boundry the
  2753.         results are UN-PREDICTABLE.
  2754.  
  2755. CNHASH  ( cfa -- ya )           KERNEL3
  2756.         Given CFA, get pointer into >NAME hash table in YSEG.
  2757.  
  2758. CNSRCH  ( cfa ya maxya -- nfa failf ) KERNEL3
  2759.         Search for CFA between YA and MAXYA in YSEG. Return NFA and
  2760.         failure flag.
  2761.  
  2762. CNT     ( --- a1 )              DEBUG
  2763.         How many times thru debug next
  2764.  
  2765. CODE    ( | <name> --- )        PASM
  2766.         Define <name> as a new code definition. Assembly language
  2767.         follows, terminated by END-CODE.
  2768.  
  2769. CODECOLOR               HIDDEN
  2770.  
  2771. COLD    ( -- )                  KERNEL4
  2772.        The high level cold start code. For ordinary forth, BOOT should
  2773.        initialize and pass control to QUIT.
  2774.  
  2775. COLONCOLOR              HIDDEN
  2776.  
  2777. COLOR-CLASS             HIDDEN
  2778.  
  2779. COLOR-INFO              FORTH
  2780.  
  2781. COLORIZEON              FORTH
  2782.  
  2783. COLORIZEOFF             FORTH
  2784.  
  2785. COLORIZE-INIT           FORTH
  2786.  
  2787. COLORIZE                FORTH
  2788.  
  2789. COLORSET                FORTH
  2790.  
  2791. COLS    ( --- n1 )              VIDEO
  2792.         A VALUE initialized at boot time that returns the number of
  2793.         screen columns on the current display, typically in the range
  2794.         40 to 132. Normally 80, but you should use this value along
  2795.         with ROWS to make your applications forgiving of other display
  2796.         modes.
  2797.  
  2798. COLSEG                  HIDDEN
  2799.  
  2800. COMMAND.BUF             FORTH
  2801.  
  2802. COMMENT$                FORTH
  2803.  
  2804. COMMENT: ( --- )                COMMENT
  2805.         Start a multi-line comment. Patches <comment:> into RUN, it
  2806.         then reads and throws away lines until "comment;" is
  2807.         encountered.
  2808.  
  2809. COMP    ( a1 a2 n1 --- f1 )     KERNEL2
  2810.         This performs a string compare.  If the two strings are equal,
  2811.         then COMPARE returns 0.  If the two strings differ, then
  2812.         COMPARE returns -1 or +1.  -1 is returned if string 1 is less
  2813.         than string 2.  +1 is returned if string 1 is greater than
  2814.         string 2. All comparisons are relative to ASCII order.
  2815.  
  2816. COMPARE ( a1 a2 n1 --- f1 )     KERNEL2
  2817.         Performs a string compare. If CAPS is true, characters from
  2818.         both strings are converted to upper case before comparing.
  2819.  
  2820. COMPILE ( | <name> -- )         KERNEL3
  2821.         Compile the (typically not-immediate) following word <name>
  2822.         when this definition executes. Name is later compiled into the
  2823.         LIST dictionary space.
  2824.  
  2825. COMSPEC$ ( --- a1 )             ENVIRON
  2826.         The handle used to hold the COMSPEC string. I.e. COMMAND.COM
  2827.  
  2828. COMSPEC@ ( --- )                ENVIRON
  2829.         Read the environment string, and extrac the COMSPEC parameter.
  2830.         the COMSPEC is inserted in the COMSPEC$ handle.
  2831.  
  2832. CONHNDL ( --- a1 )              SEQREAD
  2833.         The handle used to send characters to the console when DOS I/O
  2834.         is being used.
  2835.  
  2836. CONSOLE ( c1 --- )              KERNEL2
  2837.         Send character c1 to the console display.
  2838.  
  2839. CONSOLEL                FORTH
  2840.  
  2841. CONSTANT ( n1 | <name> -- )     KERNEL3
  2842.         A defining word that creates constants. At runtime the value of
  2843.         the constant is placed on the stack.
  2844.  
  2845. CONSTANTCOLOR           HIDDEN
  2846.  
  2847. CONTEXT ( --- a1 )              KERNEL2
  2848.         The array specifying the search order.
  2849.  
  2850. CONTEXTONLY             FORTH
  2851.  
  2852. CONTINUE                FORTH
  2853.  
  2854. CONTROL ( <char> -- n1 )        KERNEL3
  2855.         Compile the next character in the input stream as a literal
  2856.         ASCII Control Character.
  2857.  
  2858. CONTYPEL                FORTH
  2859.  
  2860. CONVERT ( +d1 a1 --- +d2 a2 )   KERNEL2
  2861.         Starting with the unsigned double number ud1 and the string at
  2862.         adr1, convert the string to a number in the current base. Leave
  2863.         result and address of unconvertable digit on stack.
  2864.  
  2865. COPY    ( <filespec> --- )      EXEC
  2866.         Perform a DOS COPY with the filespec following the COPY
  2867.         command.
  2868.  
  2869. COUNT   ( a1 --- a2 n1 )        KERNEL2
  2870.         Given the address on the stack, returns the address plus one
  2871.         and the byte at that address.  Useful for strings.
  2872.  
  2873. COUNTL                  FORTH
  2874.  
  2875. CR      ( --- )                 KERNEL2
  2876.         Typically set to CRLF, above. PR-STAT Return printer status, if
  2877.         implemented, else TRUE (PRINT) The value of the DEFERRED word
  2878.         EMIT when you want to send a character to the printer.
  2879.  
  2880. CR-IN                   FORTH
  2881.  
  2882. CRASH   ( -- )                  KERNEL3
  2883.         Default routine called by execution vectors.
  2884.  
  2885. CREATE  ( | <name> -- )         KERNEL3
  2886.         Make a header for the next word in the input stream.
  2887.  
  2888. CRESET  ( n1 a1 --- )           KERNEL1
  2889.         Set the contents of a1 so the the bits that are 1 in n1 are
  2890.         zero in addr.  Equivalent to DUP C@ ROT NOT AND SWAP C!
  2891.  
  2892. CRLF    ( --- )                 KERNEL2
  2893.         Sends a carriage return line feed sequence.
  2894.  
  2895. CRLF>BL'S               FORTH
  2896.  
  2897. CROWS   ( --- n1 )              VIDEO
  2898.         A VALUE initialized at boot time that returns the number of
  2899.         cursor rows for a character. Used by the system when setting
  2900.         the NORMAL or BIG cursor.
  2901.  
  2902. CRTAB   ( --- )                 DECOM
  2903.         Do a carraige return and a TAB of the current TABSIZE.
  2904.  
  2905. CRUNSAVE                FORTH
  2906.  
  2907. CSET    ( n1 a1 --- )           KERNEL1
  2908.         Set the contents of a1 so that the bits that are 1 in n1 are
  2909.         also 1 in addr.  Equivalent to DUP C@ ROT OR SWAP C!
  2910.  
  2911. CSP     ( --- a1 )              KERNEL2
  2912.         Used for compile time error checking.
  2913.  
  2914. CTIME                   FORTH
  2915.  
  2916. CTOGGLE ( a1 n1 --- )           KERNEL1
  2917.         Flip the bits in a1 by the value n.  Equivalent to DUP C@ ROT
  2918.         XOR SWAP C!
  2919.  
  2920. CTRLBKSAVE              FORTH
  2921.  
  2922. CURFL                   HIDDEN
  2923.  
  2924. CURFLSAVE               HIDDEN
  2925.  
  2926. CURMAC                  HIDDEN
  2927.  
  2928. CURPOINTER ( handle --- double-current ) SEQREAD
  2929.         Return the double-current offset into file handle.
  2930.  
  2931. CURRENT ( --- a1 )              KERNEL2
  2932.         New words are added to the CURRENT vocabulary.
  2933.  
  2934. CURSOR-ON ( --- )               IBMCURSR
  2935.         Turn the cursor back on.
  2936.  
  2937. CURSOR-OFF ( --- )              IBMCURSR
  2938.         Turn off the cursor.
  2939.  
  2940. CURSORSET               FORTH
  2941.  
  2942. CURSOR_POS_INIT         FORTH
  2943.  
  2944. CUT/COPY_FILE           FORTH
  2945.  
  2946. CYAN    ( --- n1 )              COLOR
  2947.         Return the color value of CYAN.
  2948.  
  2949. D+      ( d1 d2 --- d3 )        KERNEL1
  2950.         Add the two double precision numbers on the stack and return
  2951.         the result as a double precision number.
  2952.  
  2953. D+!                     FORTH
  2954.  
  2955. D-      ( d1 d2 --- d3 )        KERNEL1
  2956.         Subtract the two double precision numbers.
  2957.  
  2958. D.      ( d1 --- )              KERNEL2
  2959.         Output as a signed double number with a trailing space.
  2960.  
  2961. D.2W                    FORTH
  2962.  
  2963. D.M.Y   ( --- )                 TIMER
  2964.         Select the date format Day.Month.Year for all calendar
  2965.         operations.
  2966.  
  2967. D.R     ( d1 n1 --- )           KERNEL2
  2968.         Output as a signed double number right justified.
  2969.  
  2970. D0=     ( d1 --- f1 )           KERNEL1
  2971.         Compare the top double number to zero.  True if d = 0
  2972.  
  2973. D2*     ( d1 --- d2 )           KERNEL1
  2974.         32 bit left shift.
  2975.  
  2976. D2/     ( d1 --- d2 )           KERNEL1
  2977.         32 bit arithmetic right shift. Equivalent to divide by 2.
  2978.  
  2979. D:      ( --- )                 KERNEL4
  2980.         Select drive A:, B:, C:, or D: as the default drive.
  2981.  
  2982. D<      ( d1 d2 --- f1 )        KERNEL1
  2983.         Compare the top two double numbers.  True if d1 < d2
  2984.  
  2985. D=      ( d1 d2 --- f1 )        KERNEL1
  2986.         Compare the top two double numbers.  True if d1 = d2
  2987.  
  2988. D>      ( d1 d2 --- f1 )        KERNEL1
  2989.         Compare the top two double numbers.  True if d1 > d2
  2990.  
  2991. DABS    ( d1 --- d2 )           KERNEL1
  2992.         Return the absolute value of the 32 bit integer on the stack
  2993.  
  2994. DARK    ( --- )                 UTILS
  2995.         Clear the screen to black or white depending on the display
  2996.         mode. See also BLACK-ON-WHITE, and WHITE-ON-BLACK.
  2997.  
  2998. DBG     ( | <name> --- )        DEBUG
  2999.         Start debugging the word following DBG immediately. See also
  3000.         DEBUG.
  3001.  
  3002. DBG.S                   FORTH
  3003.  
  3004. DBGBL                   HIDDEN
  3005.  
  3006. DBOFF                   FORTH
  3007.  
  3008. DBSEG                   FORTH
  3009.  
  3010. DEALLOC ( n1 --- f1 )           KERNEL2
  3011.         De-allocate the DOS memory area specified by absolute segment
  3012.         n1. Returns f1 false if all went well, else f1 is an error
  3013.         code.  N1 must be the value passed to Forth when the memory
  3014.         array was originally allocated.
  3015.  
  3016. DEBNEXT                 FORTH
  3017.  
  3018. DEBUG   ( | <name> --- )        DEBUG
  3019.         Look up the word following DEBUG, and make it the next word to
  3020.         be debugged.
  3021.  
  3022. DEBUGABLE ( --- )               DBGFIX
  3023.         Convert the kernel from inline NEXT to a central NEXT right now
  3024.         at runtime.  This is done in preperation for running the
  3025.         debugger, and is made possible by using a simple form of
  3026.         pattern recognition.
  3027.  
  3028. DECIMAL ( --- )                 KERNEL2
  3029.         All subsequent numeric IO will be in Decimal.
  3030.  
  3031. DECIMALBASE             FORTH
  3032.  
  3033. DECOMSEG@               HIDDEN
  3034.  
  3035. DECOMSEG                HIDDEN
  3036.  
  3037. DECR    ( a1 -- )               KERNEL1
  3038.         Decrement the word at the specified address by 1.
  3039.  
  3040. DECR>   ( | <name> -- )         EQUCOLON
  3041.         Decrement the body of <name> by one, used to modify the
  3042.         following VALUE or VARIABLE.
  3043.  
  3044. DEF-RWMODE              FORTH
  3045.  
  3046. DEFAULT ( --- )                 KERNEL2
  3047.         Opens the default file per the execute line. This does nothing
  3048.         if no file was given.
  3049.  
  3050. DEFAULT-LIST            FORTH
  3051.  
  3052. DEFAULT-BAR             FORTH
  3053.  
  3054. DEFAULT-MCOLUMN         FORTH
  3055.  
  3056. DEFAULT-MLINE           FORTH
  3057.  
  3058. DEFAULTSTATE ( --- )            UTILS
  3059.         Set the system state to the default values. The effected
  3060.         variables are BASE, CAPS, TABSIZE, LMARGIN, and RMARGIN.
  3061.  
  3062. DEFBASE                 FORTH
  3063.  
  3064. DEFBUTTON               HIDDEN
  3065.  
  3066. DEFCFA                  FORTH
  3067.  
  3068. DEFDIRSPEC$             HIDDEN
  3069.  
  3070. DEFER   ( | <name> -- )         KERNEL3
  3071.         Define a vectored execution word. These are initially set to
  3072.         display an error message. They are initialized with IS.
  3073.  
  3074. DEFERCOLOR              HIDDEN
  3075.  
  3076. DEFERS  ( <name> --- )          DEFERS
  3077.         installs the contents of a defered word in the current
  3078.         definition being defined. This is used to build a chain of
  3079.         words to be performed.
  3080.  
  3081. DEFEXT  ( --- a1 )              HANDLES
  3082.         An array holding the default extention "SEQ".
  3083.  
  3084. DEFINED ( -- here 0 | a1 false )KERNEL3
  3085.         Look up the next word in the input stream. Return true if it
  3086.         exists, otherwise false. Maybe ignore case.
  3087.  
  3088. DEFINITION-CLASS        HIDDEN
  3089.  
  3090. DEFINITIONS ( -- )              KERNEL3
  3091.         Subsequent definitions will be placed into CURRENT.
  3092.  
  3093. DEFMENU                 FORTH
  3094.  
  3095. DEFSAVE                 FORTH
  3096.  
  3097. DEL     ( <filespec> --- )      EXEC
  3098.         Delete the files specified by filespec.
  3099.  
  3100. DEL-IN                  FORTH
  3101.  
  3102. DELFL                   HIDDEN
  3103.  
  3104. DELIMITER               FORTH
  3105.  
  3106. DEPTH   ( -- n1 )               KERNEL4
  3107.         Returns the number of items on the parameter stack.
  3108.  
  3109. DFILE$                  FORTH
  3110.  
  3111. DIDPFA                  HIDDEN
  3112.  
  3113. DIGIT   ( ??? )                 KERNEL2
  3114.         Returns a flag indicating whether or not the character is a
  3115.         valid digit in the given base.  If so, returns converted value
  3116.         and true,  otherwise returns char and false.
  3117.  
  3118. DIR     ( <filespec> --- )      EXEC
  3119.         Pass the filespec following DIR to DOS and print a directory of
  3120.         the matching filespecs.
  3121.  
  3122. DIR.NAME                HIDDEN
  3123.  
  3124. DIR>PAD                 HIDDEN
  3125.  
  3126. DIRATTRIB               HIDDEN
  3127.  
  3128. DIRHNDL                 HIDDEN
  3129.  
  3130. DIRINIT                 HIDDEN
  3131.  
  3132. DIRROW                  HIDDEN
  3133.  
  3134. DIRSEG                  HIDDEN
  3135.  
  3136. DIRSPEC$                HIDDEN
  3137.  
  3138. DISK-ERROR              FORTH
  3139.  
  3140. DIV0FUNC ( -- )                 KERNEL4
  3141.         FF traps divide by 0 errors, and calls this defered word when
  3142.         such an error is detected.  You can change the contents of this
  3143.         defered words to handle divide by 0 errors in your own program.
  3144.  
  3145. DIV0SAVE                FORTH
  3146.  
  3147. DIV0STRT ( -- )                 KERNEL4
  3148.         The default function to perform when a DIVIDE by 0 trap occurs.
  3149.         This routine aborts. A divide by 0 trap calls DIV0FUNC, which
  3150.         defers to this routine.
  3151.  
  3152. DIVIDE0 ( status_reg CS IP AX BX CX DX SI BP -- ) KERNEL4
  3153.         The actual entry point from the divide by 0 trap, this word
  3154.         just calls the deferd word DIV0FUNC.  Normally the registers on
  3155.         the stack are just discarded, but you can install your own
  3156.         routine into DIV0FUNC to handle the divide by 0 error.
  3157.  
  3158. DKGRAY  ( --- n1 )              COLOR
  3159.         Returns the color for DARK GRAY. Blinks in Background.
  3160.  
  3161. DLEN                    HIDDEN
  3162.  
  3163. DLITERAL ( d# -- )              KERNEL3
  3164.         Compile the double integer from the stack as a literal.
  3165.  
  3166. DLN     ( a1 --- )              DUMP
  3167.         Dump a line, consisting of 16 bytes of hex data followed by 16
  3168.         bytes of ascii data.
  3169.  
  3170. DMAX    ( d1 d2 --- d3 )        KERNEL1
  3171.         Return the greater of the the top two double numbers.
  3172.  
  3173. DMIN    ( d1 d2 --- d3 )        KERNEL1
  3174.         Return the lesser of the top two double numbers.
  3175.  
  3176. DNEGATE ( d1 d2 --- d3 )        KERNEL1
  3177.         Same as NEGATE except for double precision numbers.
  3178.  
  3179. DNEXT                   FORTH
  3180.  
  3181. DO      ( limit start -- )      KERNEL3
  3182.         Initialize a loop structure with index running from start to
  3183.         limit-1. Used in the form   DO ... LOOP   or  DO ... +LOOP
  3184.  
  3185. DO-DOS                  FORTH
  3186.  
  3187. DOAGAIN                 FORTH
  3188.  
  3189. DOANY                   HIDDEN
  3190.  
  3191. DOASSEM                 FORTH
  3192.  
  3193. DOBDEL                  HIDDEN
  3194.  
  3195. DOBEGIN                 FORTH
  3196.  
  3197. DOBUTTON                FORTH
  3198.  
  3199. DOCASE                  FORTH
  3200.  
  3201. DOCOMPILE               FORTH
  3202.  
  3203. DODOWN                  HIDDEN
  3204.  
  3205. DOEND                   HIDDEN
  3206.  
  3207. DOENDCASE               FORTH
  3208.  
  3209. DOENDOF                 FORTH
  3210.  
  3211. DOERROR                 FORTH
  3212.  
  3213. DOES>   ( -- )                  KERNEL3
  3214.         Specifies the run time of a defining word in high  level Forth.
  3215.  
  3216. DOES?                   FORTH
  3217.  
  3218. DOESCOLOR               HIDDEN
  3219.  
  3220. DOFDEL                  HIDDEN
  3221.  
  3222. DOFHELP                 FORTH
  3223.  
  3224. DOFUNC                  FORTH
  3225.  
  3226. DOHOME                  HIDDEN
  3227.  
  3228. DOINS                   HIDDEN
  3229.  
  3230. DOKEY                   HIDDEN
  3231.  
  3232. DOLDEL                  HIDDEN
  3233.  
  3234. DOLEFT                  HIDDEN
  3235.  
  3236. DOLF                    HIDDEN
  3237.  
  3238. DOLISTING               FORTH
  3239.  
  3240. DOLWORD                 HIDDEN
  3241.  
  3242. DONE    ( --- )                 EDITSTUF
  3243.         A word that re-enables full screen scrolling if you have left
  3244.         the editor with a smaller edit window thereby invoking a
  3245.         sub-screen scroll.  If you don't understand this, try making
  3246.         the edit window several lines smaller with Alt-S-W, then leave
  3247.         the editor and notice that only the area below the editor
  3248.         window scrolls.
  3249.  
  3250. DONE?   ( n1 -- f1 )            KERNEL3
  3251.         True if the input stream is exhaused or state doesn't match.
  3252.  
  3253. DONFILE                 HIDDEN
  3254.  
  3255. DOOTHER                 FORTH
  3256.  
  3257. DOPGDN                  HIDDEN
  3258.  
  3259. DOPGUP                  HIDDEN
  3260.  
  3261. DOREPEAT                FORTH
  3262.  
  3263. DORET                   HIDDEN
  3264.  
  3265. DORIGHT                 HIDDEN
  3266.  
  3267. DORWORD                 HIDDEN
  3268.  
  3269. DOS-LINE ( --- a1 )             DEFAULT
  3270.         The address of where the DOS command line resides.
  3271.  
  3272. DOS>TIB ( --- )                 DEFAULT
  3273.         Move the DOS command line to the Terminal Input Buffer.
  3274.  
  3275. DOSVER  ( --- n1 )              KERNEL2
  3276.         Get DOS version number from DOS, and return it as N1.
  3277.  
  3278. DOTAB                   HIDDEN
  3279.  
  3280. DOTHEN                  FORTH
  3281.  
  3282. DOUBLE? ( --- f1 )              KERNEL2
  3283.         Returns non-zero if period was encountered.
  3284.  
  3285. DOUP                    HIDDEN
  3286.  
  3287. DOWDEL                  HIDDEN
  3288.  
  3289. DO\CHAR                 FORTH
  3290.  
  3291. DP      ( --- a1 )              KERNEL2
  3292.         Size of dictionary.  Next available location.
  3293.  
  3294. DPL     ( --- a1 )              KERNEL2
  3295.         The decimal point location for number input.
  3296.  
  3297. DPSAVED                 FORTH
  3298.  
  3299. DPSTART                 FORTH
  3300.  
  3301. DRIVE?  ( --- n1 )              UTILS
  3302.         Displays the current disk drive in the form A:, B:, C: etc.
  3303.  
  3304. DROP    ( n1 --- )              KERNEL1
  3305.         Throw away the top element of the stack.
  3306.  
  3307. DROP.CONTEXT.I2*+@DUP   FORTH
  3308.  
  3309. DSBUF                   FORTH
  3310.  
  3311. DTBUF   ( --- a1 )              TIMER
  3312.         A buffer used by .DATE and .TIME to build their messages in,
  3313.         prior to displaying them.
  3314.  
  3315. DU      ( a1 -- addr+64 )       DUMP
  3316.         Dump another 4 lines (64 bytes).
  3317.  
  3318. DU<     ( d1 d2 --- f1 )        KERNEL1
  3319.         Performs unsigned comparison of two double numbers.
  3320.  
  3321. DUMMYCRS                HIDDEN
  3322.  
  3323. DUMP    ( A1 N1 --- )           DUMP
  3324.         Dump an area of the Code segment.
  3325.  
  3326. DUMP    ( a1 len -- )           KERNEL4
  3327.         A primitive little dump routine to help you debug after you have
  3328.         changed the system source and nothing works any more.
  3329.  
  3330. DUMPC@                  FORTH
  3331.  
  3332. DUMPSEG                 FORTH
  3333.  
  3334. DUMY$                   FORTH
  3335.  
  3336. DUP     ( n1 --- n1 n1 )        KERNEL1
  3337.         Duplicate the top element of the stack.
  3338.  
  3339. DUP>R   ( n1 --- n1 )           KERNEL1
  3340.         Duplicates the value on the parameter stack and pushes it onto
  3341.         return stack.  It is dangerous to use this randomly!
  3342.  
  3343. E                       FORTH
  3344.  
  3345. ECURSOR                 HIDDEN
  3346.  
  3347. ED      ( --- )                 TOPEDIT
  3348.         Enter the editor on the most recent edit line. See also EDITOR
  3349.  
  3350. EDIT    ( n1 --- )              TOPEDIT
  3351.         Enter the editor on the current file at line n1. See also
  3352.         EDITOR
  3353.  
  3354. EDITAFILE               FORTH
  3355.  
  3356. EDITALL                 FORTH
  3357.  
  3358. EDITBUF                 HIDDEN
  3359.  
  3360. EDITFILE                FORTH
  3361.  
  3362. EDITOR  ( --- )                 EDITSTUF
  3363.         The vocabulary that contains all of the editor words. Normally
  3364.         you use "line# EDIT", "SED filename" or just "ED" to start the
  3365.         editor.
  3366.  
  3367. EDONE                   HIDDEN
  3368.  
  3369. EEOL    ( --- )                 UTILS
  3370.         Erase the current line to the end of the line.
  3371.  
  3372. EFL                     HIDDEN
  3373.  
  3374. EH512Z                  FORTH
  3375.  
  3376. EHADR                   FORTH
  3377.  
  3378. EHCKSM                  FORTH
  3379.  
  3380. EHLMRV                  FORTH
  3381.  
  3382. EHMT                    FORTH
  3383.  
  3384. EHSP                    FORTH
  3385.  
  3386. EHZ                     FORTH
  3387.  
  3388. ELSE    ( --- )                 KERNEL3
  3389.         Used in the form: ? IF <true> ELSE <false> THEN. If flag ? is
  3390.         false, branches forward to <false>.
  3391.  
  3392. EMIT    ( c1 -- )               KERNEL2
  3393.         A defered word which sends a character to the output device.
  3394.  
  3395. EMIT.   ( char -- )             DUMP
  3396.         Emit an ascii character char. If the char is not printable then
  3397.         print a ".".
  3398.  
  3399. EMPTY   ( --- )                 EDITERR
  3400.         A word defined with MARK, that cleans out the dictionary back
  3401.         to when EMPTY was defined. All segments are reset.  USE CAUTION
  3402.         when changing DEFERed words, as EMPTY does not know about them,
  3403.         and will cause a crash if you empty back to before a needed
  3404.         word used in a DEFERed word.
  3405.  
  3406. END?    ( --- a1 )              KERNEL2
  3407.         True if input stream exhausted, else false.
  3408.  
  3409. ENDCASE ( -- )                  CASE
  3410.         See CASE.
  3411.  
  3412. ENDFILE ( handle --- double-end ) HANDLES
  3413.         Return the double-end pointer for the file open in handle, also
  3414.         sets the pointer to the end of the file. Useful for finding the
  3415.         end of a file, and for appending to the end of a file.
  3416.  
  3417. ENDMENU ( a1 n1 --- )           MENUS
  3418.         Resolves the building of a new menu. See NEWMENU.
  3419.  
  3420. ENDOF   ( -- )                  CASE
  3421.         See CASE.
  3422.  
  3423. ENTRY   ( --- a1 )              KERNEL2
  3424.         Jumped to during multitasking.
  3425.  
  3426. ENVSIZE ( --- n1 )              ENVIRON
  3427.         Calculate n1 the size of the environment in bytes, clipped to
  3428.         about 31k bytes.
  3429.  
  3430. EQUIT                   HIDDEN
  3431.  
  3432. ERASE   ( a1 n1 --- )           KERNEL2
  3433.         Fill the string with zeros
  3434.  
  3435. ERRFIX                  FORTH
  3436.  
  3437. ES0     ( --- a1 )              KERNEL2
  3438.         ES register initial segment.
  3439.  
  3440. ESC-IN                  FORTH
  3441.  
  3442. EVEN    ( -- )                  KERNEL3
  3443.         Makes the top of the stack an EVEN number. A noop on the 8086.
  3444.  
  3445. EVSEG   ( --- n1 )              ENVIRON
  3446.         Return n1 the value of the environment segment.
  3447.  
  3448. EX                      HIDDEN
  3449.  
  3450. EXCUT                   FORTH
  3451.  
  3452. EXEC.PARAM              HIDDEN
  3453.  
  3454. EXEC:   ( n1 -- )               KERNEL1
  3455.         Execute the n-th word following the word EXEC: in a high level
  3456.         definition.
  3457.  
  3458. EXECUTE ( a1 --- )              KERNEL1
  3459.         Execute the word whose code field is on the stack.  Very useful
  3460.         for passing executable routines to procedures!!!
  3461.  
  3462. EXECUTION-CLASS         HIDDEN
  3463.  
  3464. EXEHCB  ( --- a1 )              SAVEEXE
  3465.         A handle for use while saving an .EXE file.
  3466.  
  3467. EXHREAD ( a1 n1 handle seg1 --- n2 ) HANDLES
  3468.         Read from the file specified by handle to the extended segment
  3469.         area specified by seg1, a1 for length n1. Returns n2 the length
  3470.         actually read.
  3471.  
  3472. EXHWRITE ( a1 n1 handle seg1 ---) HANDLES
  3473.         Write from memory a1,n1 in segment seg1 to the file specified
  3474.         by handle.
  3475.  
  3476. EXIT    ( --- )                 KERNEL1
  3477.         Pop an entry off the return stack and place it into the
  3478.         Interpretive Pointer.  Terminates a Hi Level definition.
  3479.  
  3480. EXPECT  ( a1 n1 --- )           KERNEL2
  3481.         A DEFERed word.  Get a string from the terminal and place it in
  3482.         the buffer provided.  Performs a certain amount of line
  3483.         editing. Saves the number of characters input in the Variable
  3484.         SPAN. Processes control characters per the array pointed to by
  3485.         CC.
  3486.  
  3487. EXPORT                  FORTH
  3488.  
  3489. EXPORT$                 FORTH
  3490.  
  3491. EXTCHAR@                FORTH
  3492.  
  3493. EXTCHARSEG              FORTH
  3494.  
  3495. EXTROWS                 FORTH
  3496.  
  3497. EY                      HIDDEN
  3498.  
  3499. F1                      FORTH
  3500.  
  3501. FALLOF  ( func | file_specs --- ) FWORDS
  3502.         A generalized function. By setting the defered word DONFILE, a
  3503.         function can be performed on all files matching the filespec
  3504.         the user has given. See FLOOK, INDEX, and FPRINT for examples
  3505.         of how to use this word.
  3506.  
  3507. FALSE   ( --- f1 )              KERNEL1
  3508.         This word was brought to you by CONSTANTS FOR CLARITY.
  3509.  
  3510. FAST    ( --- )                 QVIDEO
  3511.         Select the fast screen output routines.
  3512.  
  3513. FBX                     HIDDEN
  3514.  
  3515. FCB>HANDLE ( a1 a2 --- )        HANDLES
  3516.         Copy the file <name> and extention from the specified FCB a1 to
  3517.         handle a2.
  3518.  
  3519. FEMIT   ( c1 --- )              KERNEL2
  3520.         A FAST EMIT, uses TYPE to display the character c1.  FEMIT
  3521.         weill not respond to control characters such as CR, LF or FF,
  3522.         They will be displayed as their graphic character equivelant.
  3523.  
  3524. FENCE   ( --- a1 )              KERNEL3
  3525.         The limit address for forgetting.  Words defined below FENCE
  3526.         may not be forgotten.
  3527.  
  3528. FHELP                   FORTH
  3529.  
  3530. FILE    ( | <name> --- )        SEQREAD
  3531.         Select ,name> as the current file for listing, loading or
  3532.         editing. Any file already open is closed first.
  3533.  
  3534. FILE-LINE_VIEW          FORTH
  3535.  
  3536. FILE>TIB ( a1 --- )             SEQREAD
  3537.         Move the counted dtring a1 into the terminal input buffer. The
  3538.         string is checked for an extension, if none is found, an
  3539.         decimal point is added to the string.
  3540.  
  3541. FILEPOINTER ( --- a1 )          SEQREAD
  3542.         32 bit variable holding the file pointer of the most recent
  3543.         1read.
  3544.  
  3545. FILEPRINT ( | <name> --- )      PRINT
  3546.         All printing is to goto diskfile <name>.  No extention is added
  3547.         to <name>.
  3548.  
  3549. FILES   ( --- )                 KERNEL1
  3550.         The vocabulary that contains the names of all files loaded into
  3551.         F-PC.
  3552.  
  3553. FILES_SET               HIDDEN
  3554.  
  3555. FILES_SRCH              HIDDEN
  3556.  
  3557. FILL    ( a1 n1 c1 --- )        KERNEL2
  3558.         FILL the string starting at a1 for count n1 bytes with the
  3559.         character c1. Both BLANK and ERASE are special cases of FILL.
  3560.  
  3561. FILLBUFF ( --- )                SEQREAD
  3562.         Does an unconditional refill of the disk read buffer. The
  3563.         current buffer contents is not over written, but new data is
  3564.         read into the end of the buffer to fill it up if there is more
  3565.         data to read.
  3566.  
  3567. FILLTIB ( --- )                 SEQREAD
  3568.         Does an unconditional refill of the terminal input buffer by
  3569.         reading the next line, and setting up TIB to point to that
  3570.         line.
  3571.  
  3572. FIND    ( a1 -- cfa flag | a1 false ) KERNEL3
  3573.         Run through the vocabulary list searching for the name whose
  3574.         address is supplied on the stack. If the name is found, return
  3575.         the code field address of the name and a non-zero flag. The
  3576.         flag is -1 if the word is non-immediate and 1 if it is
  3577.         immediate. If the name is not found, the string address is
  3578.         returned along with a false flag.
  3579.  
  3580. FINDFIRST ( string --- f1 )     HANDLES
  3581.         Begin a search for files specified by filespec string. String
  3582.         is a null terminated un-counted string. F1 returned indicates
  3583.         whether any files matched. The found file is placed in the Data
  3584.         Transfer Area (DTA). USE CAUTION, not to change either the DTA
  3585.         or the buffer filled in by FINDFIRST.
  3586.  
  3587. FINDINLINE              HIDDEN
  3588.  
  3589. FINDNEXT ( --- f1 )             HANDLES
  3590.         Continue the file search for a specified string. Returns the
  3591.         boolean f1 true if another match was found. USE CAUTION, not to
  3592.         change either the DTA or the buffer filled in by FINDFIRST, as
  3593.         this function relys on that information.
  3594.  
  3595. FIND_LETTER             HIDDEN
  3596.  
  3597. FIRST   ( --- a1 )              KERNEL2
  3598.         A system constant that retuns a useless value in F-PC.  It is
  3599.         useless because it is only 10 bytes lower than LIMIT.
  3600.  
  3601. FIXCUR?                 HIDDEN
  3602.  
  3603. FIXINLINE               HIDDEN
  3604.  
  3605. FL      ( | <name> --- )        SEQREAD
  3606.         An ALIAS for FILE.
  3607.  
  3608. FLHNDL  ( --- a1 )              PATHSET
  3609.         A VALUE that returns the address of the handle we are working
  3610.         with.
  3611.  
  3612. FLIP    ( n1 --- n2 )           KERNEL1
  3613.         Exhange the hi and low halves of a word.
  3614.  
  3615. FLITEM                  HIDDEN
  3616.  
  3617. FLOAD   ( | <name> --- )        SEQREAD
  3618.         load the file <name>. this is nestable.
  3619.  
  3620. FLOOK   ( search_string file_specs --- ) FWORDS
  3621.         Search all files in file_spec for search_string. Print each
  3622.         occurance found to the display with a line number.
  3623.  
  3624. FNEXT                   FORTH
  3625.  
  3626. FOFF                    HIDDEN
  3627.  
  3628. FOFF+                   HIDDEN
  3629.  
  3630. FOFFSAVE                HIDDEN
  3631.  
  3632. FOR                     FORTH
  3633.  
  3634. FORGET  ( | <name> -- )         KERNEL3
  3635.         Forget all of the code and headers before <name>. FORGET must
  3636.         be used with caution, if you are using DEFERS or UDEFERS,
  3637.         FORGET will not know about these chains, so they must be
  3638.         unlinked before using FORGET or disaster WILL strike.
  3639.  
  3640. FORGX                   HIDDEN
  3641.  
  3642. FORGY                   HIDDEN
  3643.  
  3644. FORM-DATE ( d1 --- a1 )         TIMER
  3645.         Build the ascii string of the current DOS DATE d1 in the DTBUF
  3646.         (Date/Time buffer) and return its address.
  3647.  
  3648. FORM-FEED ( --- )               UTILS
  3649.         Print a form feed character.
  3650.  
  3651. FORM-TIME ( d1 --- a1 )         TIMER
  3652.         Build the ascii string of the current DOS TIME d1 in the DTBUF
  3653.         (Date/Time buffer) and return its address.
  3654.  
  3655. FORTH   ( --- )                 KERNEL1
  3656.         The FORTH vocabulary, where most user words can be found.  All
  3657.         of the words in this glossary are in the FORTH vocabulary.
  3658.  
  3659. FORWARD                 FORTH
  3660.  
  3661. FPATH                   FORTH
  3662.  
  3663. FPATH$                  FORTH
  3664.  
  3665. FPATH+                  FORTH
  3666.  
  3667. FPRINT  ( file_specs --- )      FWORDS
  3668.         Print listing files of all files that match the file_specs
  3669.         included on the line following FPRINT.
  3670.  
  3671. FSAVE   ( | <name> --- )        SAVEEXE
  3672.         A pseudonym for SAVE-EXE
  3673.  
  3674. FSAVE$                  FORTH
  3675.  
  3676. FSTIME                  HIDDEN
  3677.  
  3678. FUDGE   ( --- a1 )              BUFSET
  3679.         A VARIABLE used to determine the speed of MS. Calibrated at
  3680.         boot time to the speed of your computer.
  3681.  
  3682. FUNCARRAY               HIDDEN
  3683.  
  3684. GET-CURSOR ( --- SHAPE )        IBMCURSR
  3685.         Get the cursor shape mask SHAPE.
  3686.  
  3687. GET-FILESPECS           FORTH
  3688.  
  3689. GETDATE ( --- Y MD )            TIMER
  3690.         Get the DOS format double date.
  3691.  
  3692. GETDIR                  HIDDEN
  3693.  
  3694. GETFILE                 FORTH
  3695.  
  3696. GETINPFILE              FORTH
  3697.  
  3698. GETMOUS                 HIDDEN
  3699.  
  3700. GETTIME ( --- HM Sh )           TIMER
  3701.         Get the DOS format double time.
  3702.  
  3703. GET_ALINE ( --- )               SEQREAD
  3704.         get a line of text from the current file, and place it in the
  3705.         output buffer.
  3706.  
  3707. GFL     ( | <name> --- )        SEQREAD
  3708.         Looks at the input stream, if a name is waiting, then continue,
  3709.         but if no name is waiting, the pop up a window display and
  3710.         allow the user to pick from a file in the window.
  3711.  
  3712. GLOBAL_REF              FORTH
  3713.  
  3714. GO      ( a1 --- )              KERNEL1
  3715.         Execute code at the given address.
  3716.  
  3717. GOTO                    FORTH
  3718.  
  3719. GOTOFL                  HIDDEN
  3720.  
  3721. GRAPHCHAR               FORTH
  3722.  
  3723. GRAPHICCHAR             FORTH
  3724.  
  3725. GREEN   ( --- n1 )              COLOR
  3726.         Return the color value for GREEN.
  3727.  
  3728. H                       FORTH
  3729.  
  3730. H-PVOC                  HIDDEN
  3731.  
  3732. H-STATE                 HIDDEN
  3733.  
  3734. H.      ( u -- )                KERNEL4
  3735.        Display the unsigned number in hex, with trailing blank. Does
  3736.        not change the number base.
  3737.  
  3738. HANDLE  ( | <name> --- )        HANDLES
  3739.         Creates an array/handle for name, which holds the files
  3740.         attributes, handle number, and null terminated name.
  3741.  
  3742. HANDLE>EXT ( a1 --- a2 )        HANDLES
  3743.         Moves the address from the handle to the decimal point in the
  3744.         filename, if it exists.  Otherwise it steps to the null
  3745.         immediately following the filename.
  3746.  
  3747. HASH    ( str-addr voc-ptr -- thread ) KERNEL3
  3748.         Using the str-addr and the vocabulary address to determine the
  3749.         address thread in the vocabulary that the name should go into.
  3750.  
  3751.  
  3752. HAVEMOUSE               HIDDEN
  3753.  
  3754. HCLOSE  ( handle --- f1 )       HANDLES
  3755.         Close the file specified by handle, return boolean f1 non-zero
  3756.         if an error occured.
  3757.  
  3758. HCREATE ( handle --- error-code ) HANDLES
  3759.         Create the file specified in handle, if the file already
  3760.         exists, then it is ZEROed !! Returns zero if no error occured.
  3761.  
  3762. HDEFAULT ( -- )                 DEFAULT
  3763.         Open a file specified on the comand line at startup.
  3764.  
  3765. HDELETE ( handle --- f1 )       HANDLES
  3766.         Delete the file specified by handle, return boolean f1 non-zero
  3767.         if an error occured.
  3768.  
  3769. HDOS1   ( cx dx fun -- ax cf | error-code 1 ) HANDLES
  3770.         Define a dos call assembly word, which is later used by HOPEN
  3771.         and HCREATE.
  3772.  
  3773. HDOS3                   FORTH
  3774.  
  3775. HDOS4                   FORTH
  3776.  
  3777. HDSTSCHR                FORTH
  3778.  
  3779. HEADER  ( | <name> -- )         KERNEL3
  3780.         Creates a NAME header in HEAD space, but compiles absolutely
  3781.         nothing in CODE space.  The head created, does point at HERE
  3782.         though.
  3783.  
  3784. HEADERLESS              FORTH
  3785.  
  3786. HEADERS                 FORTH
  3787.  
  3788. HELLO   ( --- )                 HELLO
  3789.         Cold start initialization for F-PC.
  3790.  
  3791. HELP    ( | <name> --- )        VIEW
  3792.         VIEW is followed on the same line by name. Display a help file
  3793.         entry for the <name> specified.
  3794.  
  3795. HERE    ( --- a1 )              KERNEL2
  3796.         Return the address of the top of the dictionary
  3797.  
  3798. HEX     ( --- )                 KERNEL2
  3799.         All subsequent numeric IO will be in Hexadecimal.
  3800.  
  3801. HEXBASE                 FORTH
  3802.  
  3803. HFIND                   FORTH
  3804.  
  3805. HIDDEN  ( --- )                 VOCABS
  3806.         vocabulary stack -> ( voc1 voc2 -- hidden voc2 | current = ? )
  3807.         The HIDDEN vocabulary, sets CONTEXT to HIDDEN when executed.
  3808.  
  3809. HIDE    ( -- )                  KERNEL3
  3810.         Removes the Last definition from the Header Dictionary.
  3811.  
  3812. HIDE.MOUSE              FORTH
  3813.  
  3814. HIDE.MS                 HIDDEN
  3815.  
  3816. HIDELINES ( --- )               SEQREAD
  3817.         Turn off listing of lines while loading.
  3818.  
  3819. HLD     ( --- a1 )              KERNEL2
  3820.         Points to a converted character during numeric output.
  3821.  
  3822. HNDLOFFSET              FORTH
  3823.  
  3824. HNDLS   ( --- a1 )              SEQREAD
  3825.         an array of handles, holds 5 handles in a stack. Used by
  3826.         SEQHANDLE, SEQHANDLE+, and FLOAD.
  3827.  
  3828. HOLD    ( c1 --- )              KERNEL2
  3829.         Save the char for numeric output later.
  3830.  
  3831. HOPEN   ( handle --- error-code ) HANDLES
  3832.         Open the file specified in handle, return error-code zero if
  3833.         the file was opened properly.
  3834.  
  3835. HOURS   ( N1 --- )              TIMESTUF
  3836.         Wait for n1 hours. Performs PAUSE and PAUSE-FUNC constantly
  3837.         while its waiting.
  3838.  
  3839. HREAD   ( a1 n1 handle --- n2 ) HANDLES
  3840.         Read from a file specified by a handle to a1,n1 in the code
  3841.         segment.  Returns n2 the length actually read.
  3842.  
  3843. HRENAME ( handle1 handle2 --- return-code ) HANDLES
  3844.         Change the name of the file specified in handle1 to the name
  3845.         specified in handle2. Can be used to move a file from one
  3846.         directory to another on the same drive. Returns 18 if the
  3847.         rename was good, not zero.
  3848.  
  3849. HSRCSCHR                FORTH
  3850.  
  3851. HV-INSERT               HIDDEN
  3852.  
  3853. HWORDS+                 FORTH
  3854.  
  3855. HWORDS-                 FORTH
  3856.  
  3857. HWRITE  ( a1 n1 handle --- n2 ) HANDLES
  3858.         Write to a file specified by a handle from a1,n1 in the code
  3859.         segment. Return n2 the length actually written.
  3860.  
  3861. HYPERTYPEL              FORTH
  3862.  
  3863. I       ( --- n1 )              KERNEL1
  3864.         returns the current loop index.  It now requires a little more
  3865.         calculation to compute it than in FIG Forth but the tradeoff is
  3866.         a much faster (LOOP).  The loop index is stored on the Return
  3867.         Stack.
  3868.  
  3869. IBFULL                  FORTH
  3870.  
  3871. IBLEN   ( --- n1 )              SEQREAD
  3872.         Input buffer length constant.
  3873.  
  3874. IBLIMIT                 FORTH
  3875.  
  3876. IBM--LINE ( -- )                IBMCURSR
  3877.         Delete the current line on the IBM display, causes all lines
  3878.         lower on the screen to scroll up. This is the defered function
  3879.         of -LINE. Use -LINE for portability.
  3880.  
  3881. IBM-AT  ( col row -- )          IBMCURSR
  3882.         Move to the COL and ROW specified on the IBM display screen.
  3883.         This is done using a BIOS level interupt. This word is normally
  3884.         the defered function of AT, you should use AT for portability.
  3885.  
  3886. IBM-AT? ( --- col row )         IBMCURSR
  3887.         Return the ROW and COLUMN of the cursor on the display as it is
  3888.         known by DOS.  Used to initialize Forth's #LINE and #OUT
  3889.         variables.
  3890.  
  3891. IBM-DARK                FORTH
  3892.  
  3893. IBM-PROPRINT ( --- )            PROPRINT
  3894.         Select the IBM Proprinter as the system printer, with BOLD and
  3895.         UNDERLINE available.
  3896.  
  3897. IBRESET ( --- )                 SEQREAD
  3898.         Input Buffer RESET, initializes the LINEREAD function to start
  3899.         reading from a new file or a file in which a move POINTER has
  3900.         been done.  Flushes the contents of the read buffer.
  3901.  
  3902. IF      ( f1 -- )               KERNEL3
  3903.         Used in the form: f1   IF <true> ELSE <false> THEN  (ELSE is
  3904.         optional). If flag f1 is false, branches forward to <false> or
  3905.         after THEN.
  3906.  
  3907. IMMEDIATE ( -- )                KERNEL3
  3908.         Mark the last Header as an Immediate word.
  3909.  
  3910. IMP/EXP.INIT            FORTH
  3911.  
  3912. IMPORT                  FORTH
  3913.  
  3914. INBSEG  ( --- n1 )              SEQREAD
  3915.         The input buffer segment VALUE.
  3916.  
  3917. INCLUDE ( | <name> --- )        SEQREAD
  3918.         An ALIAS for FLOAD.  See also FLOAD.
  3919.  
  3920. INCR    ( a1 -- )               KERNEL1
  3921.         Increment the word at the specified address by 1.
  3922.  
  3923. INCR>   ( | <name> -- )         EQUCOLON
  3924.         Increment the body of <name> by one, used to modify the
  3925.         following VALUE or VARIABLE.
  3926.  
  3927. INDEX   ( file_spec --- )       FWORDS
  3928.         display an index of the first line of each file that matches
  3929.         the file_specs included on the line following INDEX.
  3930.  
  3931. INIT-R0                 FORTH
  3932.  
  3933. INIT-SPLIT              HIDDEN
  3934.  
  3935. INIT.MOUSE              HIDDEN
  3936.  
  3937. INITCMDPATH             HIDDEN
  3938.  
  3939. INITCOLOR ( --- )               VIDEO
  3940.         A defered word that gets set later, and is used to do the color
  3941.         display attribute control initialization ( it sets the >ATTRIBx
  3942.         words. ). See the file MONOCROM, and COLOR.
  3943.  
  3944. INITMONO ( --- )                 VIDEO
  3945.         A defered word that gets set later, and is used to do the
  3946.         monochrome display attribute control initialization ( it sets
  3947.         the >ATTRIBx words. ). See the file MONOCROM.
  3948.  
  3949. INITMOUSE               HIDDEN
  3950.  
  3951. INITSTUFF ( --- )               KERNEL4
  3952.         A DEFERed word chain, used by many system utilities that need
  3953.         to specify a function to be performed at cold start time.  See
  3954.         also DEFERS for more information on how defered word chains
  3955.         work.
  3956.  
  3957. INLEN   ( --- a1 )              SEQREAD
  3958.         input text length variable
  3959.  
  3960. INLENGTH                FORTH
  3961.  
  3962. INLINE  ( --- )                 PASM
  3963.         Starts an assembly language sequence in the middle of a :
  3964.         (colon) definition. Assembly code instructions follow until the
  3965.         sequence is terminated by END-INLINE. The sequence of assembly
  3966.         instructions normally includes NEXT, 1PUSH, or 2PUSH just prior
  3967.         to the word END-INLINE.
  3968.  
  3969. INSERTALINE             FORTH
  3970.  
  3971. INSERTMODE              HIDDEN
  3972.  
  3973. INSTALL ( --- )                 UTILS
  3974.         A DEFERed word that is used to install user defined options in
  3975.         the system when they are initially bringing up the system.
  3976.  
  3977. INSTART                 FORTH
  3978.  
  3979. INTERP                  FORTH
  3980.  
  3981. INTERPRET ( -- )                KERNEL3
  3982.         The Forth Interpret Loop. If the next word is defined, execute
  3983.         it, otherwise convert it to a number and push it onto the
  3984.         stack.
  3985.  
  3986. INVERT-SCREEN           FORTH
  3987.  
  3988. IS      ( cfa -- )              KERNEL4
  3989.        Depending on STATE, either sets the following DEFERred word
  3990.        immediatly or compiles the setting for later.
  3991.  
  3992. ISTK>                   HIDDEN
  3993.  
  3994. ITEM#                   HIDDEN
  3995.  
  3996. ITEMSTK                 HIDDEN
  3997.  
  3998. J       ( --- n1 )              KERNEL1
  3999.         returns the loop index of the inner loop in nested DO .. LOOPs.
  4000.  
  4001. JOIN                    FORTH
  4002.  
  4003. K                       FORTH
  4004.  
  4005. KEY     ( --- c1 )              KERNEL2
  4006.         A defered word to get a key from user.
  4007.  
  4008. KEY?    ( --- f1 )              KERNEL2
  4009.         A defered word that returns a true flag if a key waiting.
  4010.  
  4011. KEYFILTER               FORTH
  4012.  
  4013. KEYFUNCS2               HIDDEN
  4014.  
  4015. KEYFUNCS1               HIDDEN
  4016.  
  4017. KEYSFUNCPTR             HIDDEN
  4018.  
  4019. KEYTABLE                FORTH
  4020.  
  4021. KEYTESTS                HIDDEN
  4022.  
  4023. L       ( --- )                 VIEW
  4024.         Display 18 lines starting at the most recently displayed line.
  4025.  
  4026. L>NAME  ( lfa -- nfa )          KERNEL3
  4027.         Go from link field address lfa to name field address lfa.
  4028.  
  4029. LABEL   ( --- a1 )              PASM
  4030.         Create a definition that returns the address of whatever code
  4031.         follows, and enable the assembler. Compiled as a VARIABLE.
  4032.  
  4033. LARGEST ( a1 n1 --- a2 n2 )     LARGEST
  4034.         Given a starting address a1 and an array length in bytes,
  4035.         return a2 the address of the largest word element in the array,
  4036.         and n2 the largest element itself.
  4037.  
  4038. LAST    ( --- a1 )              KERNEL2
  4039.         Points to the name of the most recently CREATEd word.
  4040.  
  4041. LAST-CURSOR             HIDDEN
  4042.  
  4043. LASTX                   HIDDEN
  4044.  
  4045. LASTY                   HIDDEN
  4046.  
  4047. LCHAR                   HIDDEN
  4048.  
  4049. LDUMP   ( seg offset len --- )  DUMP
  4050.         Dump to the display the absolute segment seg, starting at
  4051.         offset for length len.
  4052.  
  4053. LEAVE   ( -- )                  KERNEL3
  4054.         Immediately exit a DO-LOOP.
  4055.  
  4056. LEDBUTTON               HIDDEN
  4057.  
  4058. LEDIT_RESTORE           FORTH
  4059.  
  4060. LENGTH  ( a1 --- a2 n1 )        KERNEL2
  4061.         Given the address on the stack, returns the address plus two
  4062.         and the two byte contents of the address.
  4063.  
  4064. LENGTH.CHECK            FORTH
  4065.  
  4066. LENLIMIT                HIDDEN
  4067.  
  4068. LFEMIT                  FORTH
  4069.  
  4070. LFILL   ( a1 len value --- )    KERNEL2
  4071.         Fill starting at addr, for length len, with value.
  4072.  
  4073. LFILLW  ( seg offset byte-len WORD --- ) IBMCURSR
  4074.         Fill absolute segment seg starting at offset for length
  4075.         byte-len with the value WORD.
  4076.  
  4077. LIC@                    FORTH
  4078.  
  4079. LIHERE                  FORTH
  4080.  
  4081. LIMIT   ( --- a1 )              KERNEL2
  4082.         A constant that returns the highest address in the CODE segment
  4083.         used by Forth. Typically $FFFE.
  4084.  
  4085. LINEEDITOR ( x y a1 n1 --- f1 ) LEDIT
  4086.         At location x,y start editing the string specified by a1,n1.
  4087.         the line editor supports the wordstar key sequences, and if the
  4088.         edit terminates with a <enter>, then the original string will
  4089.         be changed to match the edited string. If the edit is
  4090.         terminated with ESC, then the original string will not be
  4091.         changed.  See the file LEDIT for further information on
  4092.         LINEEDITOR.
  4093.  
  4094. LINEREAD ( --- a1 )             SEQREAD
  4095.         A defered word that returns a line from the current file.
  4096.  
  4097. LINESTRT                FORTH
  4098.  
  4099. LINK    ( --- a1 )              KERNEL2
  4100.         Points to next task in the circular multi tasking queue.
  4101.  
  4102. LINK>   ( lfa -- cfa )          KERNEL3
  4103.         Go from link field address lfa to code field address cfa.
  4104.  
  4105. LIST    ( n1 --- )              VIEW
  4106.         N1 is the line number to list in the current open file.
  4107.  
  4108. LISTING ( --- )                 TOPEDIT
  4109.         Print a formatted listing of the file currently open.  The
  4110.         printing is done using the editor, so there must be enough
  4111.         memory for the editor to load the file.
  4112.  
  4113. LISTVAR                 FORTH
  4114.  
  4115. LITERAL ( n1 -- )               KERNEL3
  4116.         Compile the single integer from the stack as a literal.
  4117.  
  4118. LKEY!                   HIDDEN
  4119.  
  4120. LKEY@                   HIDDEN
  4121.  
  4122. LL      ( | <name> --- )        VIEW
  4123.         LL is a pseudonym for VIEW, displays Help and Source for
  4124.         <name>.
  4125.  
  4126. LMARGIN ( -- a1 )               KERNEL4
  4127.         The left margin setting used by ?LINE, ?CR. When a line wrap
  4128.         occurs, then LMARGIN specifies how many spaces are printed on
  4129.         the following line. Default value is 0.
  4130.  
  4131. LOAD    ( n1 --- )              VIEW
  4132.         n1 is the line number of where to start loading.
  4133.  
  4134. LOADED, ( --- )                 SEQREAD
  4135.         Compile the name of the current file as a variable in the FILES
  4136.         vocabulary. Also links the variable into a list of variables
  4137.         that represent the files that have been loaded.
  4138.  
  4139. LOADER  ( --- )                 SEQREAD
  4140.         A defered word that loads the current file.
  4141.  
  4142. LOADING ( --- a1 )              SEQREAD
  4143.         A VARIABLE that holds a flag TRUE if we in the process of
  4144.         loading a file.
  4145.  
  4146. LOADLINE                FORTH
  4147.  
  4148. LOADMACS                HIDDEN
  4149.  
  4150. LOADSTAT ( --- )                SEQREAD
  4151.         load status display defered word. Normally deferd to <.STAT>.
  4152.  
  4153. LOCAL_REF               FORTH
  4154.  
  4155. LOOP    ( -- )                  KERNEL3
  4156.         Terminate a loop structure. Increment loop index by one and
  4157.         repeat <loop-body> until loop index crosses the boundary
  4158.         between limit and limit - 1. Used in the form DO <loop-body>
  4159.         LOOP.
  4160.  
  4161. LRUNSAVE                FORTH
  4162.  
  4163. LTBLUE  ( --- n1 )              COLOR
  4164.         Return the color value for LIGHT BLUE. Blinks in Background.
  4165.  
  4166. LTCYAN  ( --- n1 )              COLOR
  4167.         Return the color value for LIGHT CYAN Blinks in Background.
  4168.  
  4169. LTGRAY  ( --- n1 )              COLOR
  4170.         Return the color value for LIGHT GRAY
  4171.  
  4172. LTGREEN ( --- n1 )              COLOR
  4173.         Return the color value for LIGHT GREEN Blinks in Background.
  4174.  
  4175. LTMAGENTA ( --- n1 )            COLOR
  4176.         Return the color value for LIGHT MAGENTA Blinks in Background.
  4177.  
  4178. LTRED   ( --- n1 )              COLOR
  4179.         Return the color value for LIGHT RED Blinks in Background.
  4180.  
  4181. M/D/Y   ( --- )                 TIMER
  4182.         Select the date format Month/Day/Year for all calender
  4183.         functions.
  4184.  
  4185. M/MOD   ( d1 n1 --- rem quot )  KERNEL1
  4186.         Divides a double by a single, leaving a single quotient and a
  4187.         single remainder. Division is floored.
  4188.  
  4189. MACBASE                 HIDDEN
  4190.  
  4191. MACFILE                 HIDDEN
  4192.  
  4193. MACINIT                 HIDDEN
  4194.  
  4195. MACKEY                  HIDDEN
  4196.  
  4197. MACSEG                  HIDDEN
  4198.  
  4199. MACSIZ                  HIDDEN
  4200.  
  4201. MACTIMES                HIDDEN
  4202.  
  4203. MAGENTA ( --- n1 )              COLOR
  4204.         A CONSTANT that returns the color value for Magenta on a color
  4205.         monitor.
  4206.  
  4207. MAKEAFILE               FORTH
  4208.  
  4209. MAKEDUMMY ( | <name> -- )       KERNEL3
  4210.         Make a dummy : definitions out of <name>.  Effectively a NOOP,
  4211.         used by ANEW.
  4212.  
  4213. MAKEFILE                FORTH
  4214.  
  4215. MAKINGMAC               HIDDEN
  4216.  
  4217. MANY    ( -- )                  UTILS
  4218.         Re-execute the input stream until the user presses a key.
  4219.  
  4220. MARK    ( | <name> -- )         HELLO
  4221.         Create a mark, that is define a word <name> that will clear the
  4222.         dictionary back to itself when it is executed.
  4223.  
  4224. MAX     ( n1 n2 --- n3 )        KERNEL1
  4225.         Return the maximum of n1 and n2
  4226.  
  4227. MAX-CLASSES             HIDDEN
  4228.  
  4229. MAX.S   ( --- a1 )              KERNEL4
  4230.         A VARIABLE that holds the value of how many items to display
  4231.         when a .S is performed, normally set to 4, but can be changed
  4232.         by the user.
  4233.  
  4234. MAXCFA                  HIDDEN
  4235.  
  4236. MAXDIR                  HIDDEN
  4237.  
  4238. MAXEDIT                 HIDDEN
  4239.  
  4240. MAXNAME                 HIDDEN
  4241.  
  4242. MAXNEST ( --- n1 )              SEQREAD
  4243.         Total size in bytes of the system handle stack.
  4244.  
  4245. MBUTTON                 FORTH
  4246.  
  4247. MBYE                    FORTH
  4248.  
  4249. MCOL                    FORTH
  4250.  
  4251. MCOLUMN                 FORTH
  4252.  
  4253. ME$     ( --- a1 )              ENVIRON
  4254.         Storage space for the execution string used to execute this
  4255.         forth currently running.
  4256.  
  4257. ME@     ( --- )                 ENVIRON
  4258.         Extract the execution string from the environment, and place it
  4259.         in the string ME$
  4260.  
  4261. MED-CURSOR ( --- )              IBMCURSR
  4262.         set the cursor to a thick cursor, not line, and not block sort
  4263.         of double thick.
  4264.  
  4265. MEMCHK  ( f1 --- )              KERNEL2
  4266.         abort with memory error message if true
  4267.  
  4268. MENU    ( --- )                 MENUS
  4269.         Invode the current menu set, accepts keypad keys to move around
  4270.         the menubar, and then to enter a menu command. If you have not
  4271.         setup a menubar, then the default Forth menubar is used.
  4272.         See also MENUS
  4273.  
  4274. MENUBAR                 FORTH
  4275.  
  4276. MENUBOX                 FORTH
  4277.  
  4278. MENUKEY                 FORTH
  4279.  
  4280. MENULINE" ( | <menu_text> <menu_func> --- ) MENUS
  4281.         Define a new pull down menu line, with text <menu_text> to
  4282.         perform <menu_func>. All menu lines for a particular menu
  4283.         should have the same <menu_text> length.  The first capitalized
  4284.         letter in the <menu_text> will be the recognized menu command
  4285.         letter, and should be unique within the items of a particular
  4286.         menu. See MENUS
  4287.         Example:
  4288.                             "T" is the command key.
  4289.                            /               NOOP is the menu function
  4290.                          /                /
  4291.              MENULINE"  This is a test " noop
  4292.  
  4293. MENULIST                FORTH
  4294.  
  4295. MIN     ( n1 n2 --- n3 )        KERNEL1
  4296.         Return the minimum of n1 and n2
  4297.  
  4298. MINUTES ( N1 --- )              TIMESTUF
  4299.         Wait for n1 minutes. PAUSE and PAUSE-FUNC are performed
  4300.         continuously while waiting.
  4301.  
  4302. MLINE                   FORTH
  4303.  
  4304. MOD     ( num den -- modulus )  KERNEL1
  4305.         Return the modulus of the numerator and denominator, where the
  4306.         quotient is "floored".  This is designed to yield a result
  4307.         having the same sign as the denominator.  Note that if the
  4308.         denominator is positive, the result is positive, regardless of
  4309.         the sign of the numerator.
  4310.  
  4311. MORE?                   FORTH
  4312.  
  4313. MOUSE.SCALE             HIDDEN
  4314.  
  4315. MOUSEBUTTON             FORTH
  4316.  
  4317. MOUSECHAR               HIDDEN
  4318.  
  4319. MOUSEFLG                FORTH
  4320.  
  4321. MOUSEKEY                FORTH
  4322.  
  4323. MOUSEKEY?               FORTH
  4324.  
  4325. MOUSEWASDOWN            HIDDEN
  4326.  
  4327. MOUSEXY                 FORTH
  4328.  
  4329. MOVE    ( a1 a2 n1 --- )        KERNEL2
  4330.         Move the specified bytes n1 from address a1 ro address a2. No
  4331.         overlapping of data will occur.
  4332.  
  4333. MOVE>MOUSE              HIDDEN
  4334.  
  4335. MOVEPOINTER ( double-offset handle --- ) HANDLES
  4336.         Move the file pointer for handle to the position double-offset
  4337.         in the file already open in handle.
  4338.  
  4339. MROW                    FORTH
  4340.  
  4341. MS      ( n1 --- )              BUFSET
  4342.         Delay for n1 milliseconds. This function is system specific,
  4343.         and while it is calibrated at system boot time, it may not
  4344.         always be very acurate.
  4345.  
  4346. MS:                     HIDDEN
  4347.  
  4348. MSGSAVE                 FORTH
  4349.  
  4350. MU/MOD  ( d1 n1 --- rem dquotient) KERNEL1
  4351.         divides a double by a single, leaving a double quotient and a
  4352.         single remainder. Division is floored.
  4353.  
  4354. N       ( --- )                 VIEW
  4355.         Go forward 16 lines and display 18 lines.
  4356.  
  4357. N>LINK  ( nfa -- lfa)           KERNEL3
  4358.         Go from name field address nfa to link field address lfa.
  4359.  
  4360. NAME>   ( nfa -- cfa )          KERNEL3
  4361.         Go from name field address nfa to code field address cfa.
  4362.  
  4363. NAME>BUF                HIDDEN
  4364.  
  4365. NAME>PAD ( A1 --- PAD )         VIEW
  4366.         Move the name field to PAD and filter out the hi bit of the
  4367.         last character in name. Also clears all but lower 5 bits of
  4368.         name count.
  4369.  
  4370. NDIR                    HIDDEN
  4371.  
  4372. NEEDS   ( | <name> --- )        NEEDS
  4373.         Test the file <name> following, if we have not loaded it, then
  4374.         load it else just go on.
  4375.  
  4376. NEGATE  ( n1 --- n2 )           KERNEL1
  4377.         Turn the number into its negative.  A twos complement op.
  4378.  
  4379. NEWBEEP                 FORTH
  4380.  
  4381. NEWFILE ( | <name> --- )        NEWFILE
  4382.         Open or CREATE the <name> specified and start editing it. if no
  4383.         name is specified, then prompt for a name.
  4384.  
  4385. NEWINFO ( --- )                 INFO
  4386.         Starts a sequence of lines that constitute a NEWINFO, NEWINFO
  4387.         is placed at the beginning of a line, and subsequent lines are
  4388.         compiled into a special file called F-PC.MSG until the
  4389.         terminating line ENDINFO is encountered.  When the definition
  4390.         containing NEWINFO and ENDINFO is later executed, the lines
  4391.         between them are read from the disk file, and displayed.  This
  4392.         is a system utility, and is not typically used in a user
  4393.         program.
  4394.  
  4395. NEWMENU ( | <name> --- a1 0 )   compile time    MENUS
  4396.         ( --- a1 )              run time
  4397.         Starts the definition of a new menu <name>, see MENUS for an
  4398.         example of how to make a menu.
  4399.  
  4400. NEWMENUBAR ( | <name> --- )     MENUS
  4401.         Starts the definition of a new menubar, see MENUS for an
  4402.         example of how to make a menubar.
  4403.  
  4404. NEXPECT                 FORTH
  4405.  
  4406. NEXT                    FORTH
  4407.  
  4408. NEXT|                   FORTH
  4409.  
  4410. NFL                     HIDDEN
  4411.  
  4412. NIP     ( n1 n2 --- n2 )        KERNEL1
  4413.         Drop the second element from the stack.
  4414.  
  4415. NLEN                    FORTH
  4416.  
  4417. NO-NAME ( --- )                 KERNEL3
  4418.         A dummy name, whose name field address is returned by >NAME
  4419.         when the real name field can not be found.
  4420.  
  4421. NOBACKUP ( --- )                EDITSTUF
  4422.         Disable the creation of backup copies of your edit files.  This
  4423.         is normally only done when you are short of disk space, wo
  4424.         allow the editing of larger files in a limited environment.
  4425.  
  4426. NOBASE                  FORTH
  4427.  
  4428. NOHEADROOM              FORTH
  4429.  
  4430. NOISE                   HIDDEN
  4431.  
  4432. NOLISTROOM              FORTH
  4433.  
  4434. NOMOUSE                 HIDDEN
  4435.  
  4436. NOOP    ( --- )                 KERNEL1
  4437.         One of the most useful words in Forth.  Does nothing.
  4438.  
  4439. NORM-CURSOR ( --- )             IBMCURSR
  4440.         Set the cursor to the normal underline shape.
  4441.  
  4442. NORM-DARK               FORTH
  4443.  
  4444. NORM-KEYTABLE           FORTH
  4445.  
  4446. NORMALVAL               FORTH
  4447.  
  4448. NORMVAL                 FORTH
  4449.  
  4450. NOSETCUR                FORTH
  4451.  
  4452. NOT     ( n1 --- n2 )           KERNEL1
  4453.         Does a ones complement of the top.  Equivalent to -1 XOR.
  4454.  
  4455. NPATH                   FORTH
  4456.  
  4457. NRESOLVE ( 0 n1 n2 ... n -- )   CASE
  4458.         Primitive used by ENDCASE to resolve the previous case
  4459.         references.
  4460.  
  4461. NUMBER  ( a1 --- d1 )           KERNEL2
  4462.         Convert a string to a number.  Normally (NUMBER)
  4463.  
  4464. NUMBER? ( a1 --- d1 f1 )        KERNEL2
  4465.         Convert the count delimited string at a1 to a double number.
  4466.         NUMBER? takes into account a leading minus sign, and stores a
  4467.         pointer to the last delimiter in DPL. The string must end with
  4468.         a blank. Leaves a true flag if successful.
  4469.  
  4470. OBLEN   ( --- n1 )              SEQREAD
  4471.         output buffer length constant
  4472.  
  4473. OCCUR_SRCH              HIDDEN
  4474.  
  4475. OCTAL   ( --- )                 KERNEL2
  4476.         All subsequent numeric IO will be in Octal.
  4477.  
  4478. OF      ( n1 n2 -- n1 )         CASE
  4479.         ( n1 n1 -- )
  4480.         See CASE.
  4481.  
  4482. OFF     ( a1 --- )              KERNEL1
  4483.         Set the contents of a1 to FALSE
  4484.  
  4485. OFF>    ( | <name> --- )        EQUCOLON
  4486.         Turn off the VALUE or VARIABLE <name> following. Somewhat
  4487.         faster than <name> OFF.
  4488.  
  4489. OFFSET                  FORTH
  4490.  
  4491. OK      ( --- )                 SEQREAD
  4492.         Load all of the current file. Peforms a 1 LOAD.
  4493.  
  4494. OLDFIX                  HIDDEN
  4495.  
  4496. ON      ( a1 --- )              KERNEL1
  4497.         Set the contents of a1 to TRUE
  4498.  
  4499. ON>     ( | <name> --- )        EQUCOLON
  4500.         Turn on the VALUE or VARIABLE <name> following. Somewhat faster
  4501.         than <name> ON.
  4502.  
  4503. OPEN    ( | <name> --- )        SEQREAD
  4504.         Open <name> as the current file for loading, editor etc. This
  4505.         is a pseudonym for FILE.
  4506.  
  4507. OPENFILE                FORTH
  4508.  
  4509. OR      ( n1 n2 --- n3 )        KERNEL1
  4510.         Returns the bitwise OR of n1 and n2 on the stack.
  4511.  
  4512. OS2                     FORTH
  4513.  
  4514. OUTBUF  ( --- a1 )              SEQREAD
  4515.         the line output buffer array
  4516.  
  4517. OUTFIX                  HIDDEN
  4518.  
  4519. OUTPAUSE ( --- )                KERNEL2
  4520.         A DEFERed word that can be set to PAUSE, but is normally set to
  4521.         NOOP, to prevent multi tasking from interfering with typed
  4522.         output.
  4523.  
  4524. OVER    ( n1 n2 --- n1 n2 n1 )  KERNEL1
  4525.         Copy the second element to the top.
  4526.  
  4527. OVER.SWAP.HASH.@        FORTH
  4528.  
  4529. P!      ( n1 port# --- )        KERNEL1
  4530.         Write the value n1 to the 16 bit port#.
  4531.  
  4532. P-IN                    FORTH
  4533.  
  4534. P@      ( port# -- n1 )         KERNEL1
  4535.         Read the 16 bit port# and return value n1.
  4536.  
  4537. PACKED_ASC>#            FORTH
  4538.  
  4539. PAD     ( --- a1 )              KERNEL2
  4540.         Floating Temporary Storage area.  DON'T USE THIS, it will be
  4541.         going away in the ANSI standard.
  4542.  
  4543. PAGE    ( --- )                 UTILS
  4544.         Printer dependent. Get to a new page.  Increment the page
  4545.         number and reset the line number and the column number.
  4546.  
  4547. PARAGRAPH ( offset --- paragraph-in ) KERNEL3
  4548.         Convert offset to the next largest paragraph size that will
  4549.         contain all of offset.  Used to do paragraph alignment.
  4550.  
  4551. PARSE   ( a1 --- a2 n1 )        KERNEL2
  4552.         Scan the input stream until char is encountered. Update >IN
  4553.         pointer. Leaves the address and length of the enclosed string.
  4554.  
  4555. PATH$   ( --- a1 )              ENVIRON
  4556.         Storage space for the PATH string.
  4557.  
  4558. PATH1                   FORTH
  4559.  
  4560. PATH@   ( --- )                 ENVIRON
  4561.         Extract the PATH from the environment string.
  4562.  
  4563. PATHBOX                 HIDDEN
  4564.  
  4565. PATHHNDL ( --- a1 )             PATHSET
  4566.         A handle that returns a1 the address of the handle that
  4567.         contains the default drive path.
  4568.  
  4569. PATHLEN                 FORTH
  4570.  
  4571. PATHPTR                 FORTH
  4572.  
  4573. PATHSET ( handle --- f1 )       HANDLES
  4574.         Set the current drive path into handle. returns boolean f1 true
  4575.         if an error occured while performing this operation.
  4576.  
  4577. PAUSE   ( --- )                 KERNEL1
  4578.         Used by the Multitasker to switch tasks.
  4579.  
  4580. PAUSE-FUNC ( --- )              TIMESTUF
  4581.         A defered word to be set to a function that is to be performed
  4582.         while waiting for timing words Like TENTHS, SECONDS, MINUTES
  4583.         and HOURS to complete.
  4584.  
  4585. PC!     ( n1 port# --- )        KERNEL1
  4586.         Write the byte n1 to the 8 bit port#.
  4587.  
  4588. PC@     ( port# -- n1 )         KERNEL1
  4589.         Read the 8 bit port# and return value n1.
  4590.  
  4591. PCLOSE  ( --- )                 PRINT
  4592.         Close the current print file, and restore printing to the PRN
  4593.         device.
  4594.  
  4595. PDOS    ( a1 drive# --- f1 )    KERNEL1
  4596.         Read the current DOS path of drive# into the array at a1. The
  4597.         string returned will be NULL terminated. F1 returns TRUE if an
  4598.         error occured.
  4599.  
  4600. PEMIT   ( c1 --- )              KERNEL2
  4601.         A DEFERed word that normally contains (PRINT), to print a
  4602.         character c1 to the printer.
  4603.  
  4604. PERFORM ( a1 --- )              KERNEL1
  4605.         The word whose code field is stored at the address pointed to
  4606.         by a1, the number on the stack.  Same as @ EXECUTE
  4607.  
  4608. PFALINE                 HIDDEN
  4609.  
  4610. PFASAV                  FORTH
  4611.  
  4612. PFILE   ( | <name> --- )        PRINT
  4613.         All printing is to goto diskfile <name>.  No extention is added
  4614.         to <name>.
  4615.  
  4616. PFL                     HIDDEN
  4617.  
  4618. PICK    ( n1 --- n2 )           KERNEL1
  4619.         Reaches into the stack and grabs an element, copying it to the
  4620.         top of the stack.  For example, if the stack has 1 2 3 Then 0
  4621.         PICK is 3, 1 PICK is 2, and 2 PICK is 1.
  4622.  
  4623. PLACE   ( from count to --- )   KERNEL1
  4624.         Move the characters at from to to with a preceding length byte
  4625.         of len.
  4626.  
  4627. PLUCK                   FORTH
  4628.  
  4629. PNEXT                   FORTH
  4630.  
  4631. POSTFIX ( --- )                 PASM
  4632.         Switch the assembler to POSTFIX mode, like the F83 postfix
  4633.         assembler. The normal mode is PREFIX.  See also PREFIX.
  4634.  
  4635. PR-STATUS ( n1 --- n2 )         KERNEL2
  4636.         Return the printer status as n2 from the printer specified by
  4637.         n1. N1=0 for PRT1, and 1 for PRT2.
  4638.  
  4639. PRE>    ( --- )                 PASM
  4640.         Restores the previous assembler mode after using >PRE to select
  4641.         PREFIX for a macro. Used in pairs with >PRE.
  4642.  
  4643. PREFIX  ( --- )                 PASM
  4644.         Switch the assembler to PREFIX notation mode. This is the
  4645.         normal mode. See also POSTFIX.
  4646.  
  4647. PREMIT                  HIDDEN
  4648.  
  4649. PREPEND.PATH            FORTH
  4650.  
  4651. PREPEND.PATH ( handle --- f1 )  PATHSET
  4652.         Prepend the default drive and path to handle, and return f1 the
  4653.         boolean that tells if we were successful.
  4654.  
  4655. PREWORDS                FORTH
  4656.  
  4657. PRINT   ( | <words-to-be-interpreted> -- ) KERNEL3
  4658.         Interpret the following words, and output to printer.
  4659.  
  4660. PRINTING ( --- a1 )             KERNEL2
  4661.         A variable which holds a flag that Indicates whether printing
  4662.         is enabled.
  4663.  
  4664. PRINTL                  FORTH
  4665.  
  4666. PRIOR   ( --- a1 )              KERNEL2
  4667.         Points to the last vocabulary that was searched.
  4668.  
  4669. PRIOR.CHECK             FORTH
  4670.  
  4671. PRNHNDL ( --- a1 )              SEQREAD
  4672.         The handle used by the system to talk to the printer.  Normally
  4673.         initialized to contain PRN. on handle 4, but may be opened on a
  4674.         real file to cause printing to a file. See also PFILE and
  4675.         PCLOSE.
  4676.  
  4677. PRNTYPEL                FORTH
  4678.  
  4679. PRTYPEL                 HIDDEN
  4680.  
  4681. PUSH/POP-LEVEL          FORTH
  4682.  
  4683. QTYPEL                  FORTH
  4684.  
  4685. QUERY   ( --- )                 KERNEL2
  4686.         Get more input from the user and place it at TIB.
  4687.  
  4688. QUIT    ( -- )                  KERNEL4
  4689.        The main loop in Forth. Gets more input from the terminal and
  4690.        Interprets it. Responds with OK if healthy.
  4691.  
  4692. R#      ( --- a1 )              KERNEL2
  4693.         The cursor position during editing.
  4694.  
  4695. R.NAME                  HIDDEN
  4696.  
  4697. R/W-DMODE               FORTH
  4698.  
  4699. R/W-MODE                FORTH
  4700.  
  4701. R>      ( --- n1 )              KERNEL1
  4702.         Pops a value off of the return stack and pushes it onto the
  4703.         parameter stack.  It is dangerous to use this randomly!
  4704.  
  4705. R>DROP  ( --- )                 KERNEL1
  4706.         Pops a value off of the return stack and discards it. It is
  4707.         dangerous to use this randomly!
  4708.  
  4709. R@      ( --- n1 )              KERNEL1
  4710.         Copies the value on the return stack to the parameter stack.
  4711.  
  4712. READ-ONLY               FORTH
  4713.  
  4714. READ-WRITE              FORTH
  4715.  
  4716. RECOVERLINE ( n1 --- )          SAVESCR
  4717.         Recover a line n1 from the most recently saved screen with
  4718.         SAVESCR. The line is placed on the screen on line n1.
  4719.  
  4720. RECOVERSCR ( --- )              SAVESCR
  4721.         Recover a COPY of the most recently saved screen with SAVESCR.
  4722.         You can temporarily restore the screen with this word, in
  4723.         preperation for messing it up again before finally using
  4724.         RESTSCR to restore the screen.  This word does NOT pop the save
  4725.         screen stack, it only makes a copy of the most recent save.
  4726.  
  4727. RECURSE ( -- )                  KERNEL4
  4728.         We prefer to use RECURSIVE rather than RECURSE. See RECURSIVE
  4729.  
  4730. RECURSIVE ( -- )  immediate     KERNEL3
  4731.         Allow the current definition to be self referencing.
  4732.  
  4733. RED     ( --- n1 )              COLOR
  4734.         A CONSTANT that retuns the value of the color red on a color
  4735.         monitor.
  4736.  
  4737. REF     ( | <name> --- )        REF
  4738.         Display all references found to <name> in the currently
  4739.         compiled Forth system. Examines COLON definitions and DEFERed
  4740.         words.
  4741.  
  4742. REFCFA                  HIDDEN
  4743.  
  4744. REN     ( <filespec> --- )      EXEC
  4745.         Perform a RENAME with the filespec following the REN command.
  4746.  
  4747. RENAME  ( | <filespec> --- )    EXEC
  4748.         Perform a RENAME with the filespec following the RENAME
  4749.         command.
  4750.  
  4751. REPAIR  ( | <name> --- )        TOPEDIT
  4752.         Perform a VIEW and EDit on the <name> following.
  4753.  
  4754. REPEAT  ( -- )                  KERNEL3
  4755.         Unconditional backward branch to just after BEGIN in a BEGIN
  4756.         <loop>  flag WHILE  <true>  REPEAT   loop.
  4757.  
  4758. REPKEY                  HIDDEN
  4759.  
  4760. RES-IN                  FORTH
  4761.  
  4762. RESET-IN                FORTH
  4763.  
  4764. RESTBASE                FORTH
  4765.  
  4766. RESTCAPS                FORTH
  4767.  
  4768. RESTCURSOR              FORTH
  4769.  
  4770. RESTLMRG                FORTH
  4771.  
  4772. RESTMENU                FORTH
  4773.  
  4774. RESTNEXT                FORTH
  4775.  
  4776. RESTORE> ( --- ) followed by a definition in a colon def.
  4777.                                 SAVEREST
  4778.         Restore the previous value of the body of the name following in
  4779.         this colon definition.  See also SAVE> and SAVE!>.
  4780.  
  4781. RESTORESTATE ( --- )            UTILS
  4782.         Restore the system state as preserved by SAVESTATE.
  4783.  
  4784. RESTORE_VECTORS ( -- )          KERNEL4
  4785.         Restores the CONTROL BREAK DOS vectors to their original value
  4786.         as when Forth was entered.  The CONTROL BREAK and DIVIDE by 0
  4787.         vectors are saved by the assembly language cold start routines
  4788.         before Forth is entered.
  4789.  
  4790. RESTRMRG                FORTH
  4791.  
  4792. RESTSCR ( --- )                 SAVESCR
  4793.         Restore  the screen from the external segment screen save area.
  4794.         Un-nestable up to three times.
  4795.  
  4796. RESTSTAT                FORTH
  4797.  
  4798. RESTTABS                FORTH
  4799.  
  4800. REVEAL  ( -- )                  KERNEL3
  4801.         Activates (reveals) the Last definition in the Header
  4802.         Dictionary.
  4803.  
  4804. REVERSEVAL              FORTH
  4805.  
  4806. REVVAL                  FORTH
  4807.  
  4808. RMARGIN ( -- a1 )               KERNEL4
  4809.         Controls the right margin, used by ?LINE, ?CR. Specifys where
  4810.         to wrap the line.  Default value is 70.
  4811.  
  4812. ROLL    ( n1 --- n2 )           KERNEL1
  4813.         Similar to SHAKE and RATTLE.  Should be avoided. 1 ROLL is
  4814.         SWAP, 2 ROLL is ROT, etc. ROLL can be useful, but it is SLOW.
  4815.  
  4816. ROOT    ( --- )                 VOCABS
  4817.         The root vocabulary that is always available in the vocabulary
  4818.         list.
  4819.  
  4820. ROOTDIR                 HIDDEN
  4821.  
  4822. ROT     ( n1 n2 n3 --- n2 n3 n1 ) KERNEL1
  4823.         Rotate the top three element, bringing the third to the top.
  4824.  
  4825. ROWS    ( --- n1 )              VIDEO
  4826.         A VALUE that returns the number of ROWS available on the
  4827.         current display as determined at boot time.  You should use
  4828.         this VALUE to adjust your programs to work with displays having
  4829.         between 25 and 60 lines.  See also COLS.
  4830.  
  4831. RP!     ( a1 --- )              KERNEL1
  4832.         ( Warning, this is different from FIG Forth )
  4833.         Sets the return stack pointer to the specified value.
  4834.  
  4835. RP0     ( --- a1 )              KERNEL2
  4836.         Empty return stack for this task.
  4837.  
  4838. RP@     ( --- a1 )              KERNEL1
  4839.         Return the address of the next entry on the return stack.
  4840.  
  4841. RPICK                   FORTH
  4842.  
  4843. RUN     ( --- )                 KERNEL3
  4844.         Interpret or compile whatever is in the TERMINAL INPUT BUFFER.
  4845.         Tests STATE, and does the appropriate thing.
  4846.  
  4847. RUN-A;                  FORTH
  4848.  
  4849. RWERR   ( --- a1 )              HANDLES
  4850.         A VARIABLE that holds the value of the most recent disk read or
  4851.         write error.
  4852.  
  4853. RWMODE  ( --- a1 )              HANDLES
  4854.         the variable rwmode, which defaults to a value of 2, controls
  4855.         the read write mode of the file being opened, the value 2 is
  4856.         read, or write, a value of 1 specifies write only, and a value
  4857.         of 0 specifies read only.
  4858.  
  4859. S>D     ( n1 --- d1 )           KERNEL1
  4860.         Take a single precision number and make it double precision by
  4861.         extending the sign bit to the upper half.
  4862.  
  4863. SAVE!>  ( n1 --- ) followed by the name of a definition   SAVEREST
  4864.         Saves the body contents of the definition following to the
  4865.         return stack, and sets the body to value n1.  Used to save and
  4866.         set VARIALBEs or VALUEs. Complimented by RESTORE>.
  4867.  
  4868. SAVE-EXE ( | <name> --- )        SAVEEXE
  4869.         Save the current Forth memory image to the file <name> if
  4870.         present, or if not present, then prompt for a name to save to.
  4871.  
  4872. SAVE-GET                HIDDEN
  4873.  
  4874. SAVE-GET1?              HIDDEN
  4875.  
  4876. SAVE>   ( --- ) followed by a name in definition        SAVEREST
  4877.         Saves the body contents of the definition following to the
  4878.         return stack.  Used to save VARIABLEs or VALUEs that may be
  4879.         changed by a following operation.  Complimented with RESTORE>.
  4880.         See also SAVE!>
  4881.  
  4882. SAVECURSOR              FORTH
  4883.  
  4884. SAVEERR                 FORTH
  4885.  
  4886. SAVEFLG                 HIDDEN
  4887.  
  4888. SAVEMACS                HIDDEN
  4889.  
  4890. SAVEMENU                FORTH
  4891.  
  4892. SAVEPOINTER ( --- )             SEQREAD
  4893.         Save the file offset into the current file for later restoral.
  4894.  
  4895. SAVESCR ( --- )                 SAVESCR
  4896.         Save the current contents of the screen to an external segment
  4897.         save area. Nestable up to three times.
  4898.  
  4899. SAVESTATE ( --- )               UTILS
  4900.         Saves F-PC's state, including BASE, CAPS, LMARGIN, RMARGIN,
  4901.         TABSIZE and STATV.
  4902.  
  4903. SCAN    ( a1 n1 c1 --- )        KERNEL2
  4904.         Given the address and length of a string, and a character to
  4905.         look for, run through the string until we find the character.
  4906.         Leave the address of the match and the length of the remaining
  4907.         string.
  4908.  
  4909. SCANW   ( a1 w1 w2 --- a2 w3 )  SCAN
  4910.         Scan array at a1 for length w1 words for word value w2. Returns
  4911.         address a2 where w2 was found, and length remaining w3.
  4912.  
  4913. SCREENCHAR              FORTH
  4914.  
  4915. SEARCH  ( sadr slen badr blen -- n1 f1 ) SEARCH
  4916.         Search for string sadr,slen contained in badr,blen. Returns f1
  4917.         equal true if found, and n1 equal to the offset into the string
  4918.         where sadr,slen was found.
  4919.  
  4920. SEARCHEDIT              HIDDEN
  4921.  
  4922. SEARCHFILE              HIDDEN
  4923.  
  4924. SEARCHSETUP             HIDDEN
  4925.  
  4926. SEC-ELAPSED ( --- N1 )          TIMESTUF
  4927.         Return n1 the seconds that have elapsed since TIME-RESET.
  4928.  
  4929. SECONDS ( N1 --- )              TIMESTUF
  4930.         Wait n1 seconds.
  4931.  
  4932. SED     ( | filename --- )      TOPEDIT
  4933.         Start the editor on the filename specified, or if no name is
  4934.         specified, then prompt for a file. Will create a file if it
  4935.         does not already exist. See also EDITOR
  4936.  
  4937. SEDCHAR                 FORTH
  4938.  
  4939. SEE     ( <name> --- )          DECOM
  4940.         The user interface.  To decompile something type SEE <name>.
  4941.  
  4942. SEEK    ( d1 --- )              SEQREAD
  4943.         Seek (move pointer) to position d1 in the current file.
  4944.  
  4945. SEGSET  ( --- )                 KERNEL4
  4946.         A DEFERed word that contain the current function used to set up
  4947.         the segment registers at cold start time. Typically contains
  4948.         SETYSEG.
  4949.  
  4950. SELECT  ( n1 --- )              KERNEL4
  4951.         Select drive n1 as the current disk drive to use as the DEFAULT
  4952.         drive when no drive is specified. N1 ranges from 0 which is
  4953.         drive A:, to a legal value up to 255 in DOS.
  4954.  
  4955. SEQDOWN ( --- )                 SEQREAD
  4956.         Step down one handle in the handle stack. closes the current
  4957.         file, and selects the next lower file.
  4958.  
  4959. SEQHANDLE+ ( --- a1 )           SEQREAD
  4960.         A VALUE that holds the address of the NEXT available sequential
  4961.         file handle. Oftain used to hold temporary file information
  4962.         during copy or rename operations.
  4963.  
  4964. SEQHANDLE ( --- a1 )            KERNEL2
  4965.         A VALUE that holds the address of the current sequential file
  4966.         handle.  This handle holds the filename of the currently open
  4967.         file if any, along with the DOS handle number if the file is
  4968.         open.
  4969.  
  4970. SEQINIT ( --- )                 SEQREAD
  4971.         Initialize the handle stack, in preparation for use.
  4972.  
  4973. SEQUP   ( --- )                 SEQREAD
  4974.         Step up one handle in the handle stack.
  4975.  
  4976. SET-CURSOR ( N1 --- )           IBMCURSR
  4977.         Set the cursor shape to the mask value n1.
  4978.  
  4979. SET-DTA ( a1 --- )              HANDLES
  4980.         Set the Disk Transfer Area as a1.
  4981.  
  4982. SETASSEM                FORTH
  4983.  
  4984. SETBLOCK ( seg size --- f1 )    SETBLOCK
  4985.         Adjust the segment seg to the new size in 16 byte segments.
  4986.         return error flag f1 non-zero if the adjustment did not
  4987.         succeed.
  4988.  
  4989. SETDATE ( NM Y --- )            TIMER
  4990.         Set the DOS date given the double date.
  4991.  
  4992. SETFL                   HIDDEN
  4993.  
  4994. SETMAC                  HIDDEN
  4995.  
  4996. SETTIB  ( a1 --- )              SEQREAD
  4997.         Sets the terminal input buffer to the counted string a1, in
  4998.         preperation for INTERPRETation, or WORD. Be sure to save the
  4999.         current TIB for later restoral.
  5000.  
  5001. SETTIME ( HM Sh --- )           TIMER
  5002.         Set the DOS time given the double time.
  5003.  
  5004. SETVIEW ( | <path> --- )        VIEW
  5005.         Set the VIEWPATH handle to <path>.  If <path> is omitted, it
  5006.         will be prompted.
  5007.  
  5008. SETYSEG ( --- )                 KERNEL2
  5009.         Set the segment variables as needed.
  5010.  
  5011. SET_VECTORS ( -- )              KERNEL4
  5012.         Set the CONTROL BREAK and DIVIDE by 0 traps to point to the
  5013.         Forth provided functions, so we can handle them smoothly.
  5014.  
  5015. SEXE                    FORTH
  5016.  
  5017. SHOW.COLOR              FORTH
  5018.  
  5019. SHOW.MOUSE              FORTH
  5020.  
  5021. SHOWDIR                 HIDDEN
  5022.  
  5023. SHOWKEYS                HIDDEN
  5024.  
  5025. SHOWLINES ( --- )               SEQREAD
  5026.         Turn on listing of lines while loading.
  5027.  
  5028. SHOWMENUS               FORTH
  5029.  
  5030. SHOWPATH                HIDDEN
  5031.  
  5032. SHOWSRC                 FORTH
  5033.  
  5034. SIGN    ( n1 --- )              KERNEL2
  5035.         If n1 is negative insert a minus sign into the string.
  5036.  
  5037. SKIP    ( a1 n1 c1 --- )        KERNEL2
  5038.         Given the address and length of a string, and a character to
  5039.         look for, run through the string while we continue to find the
  5040.         character.  Leave the address of the mismatch and the length of
  5041.         the remaining string.
  5042.  
  5043. SKIP.BLANKS             FORTH
  5044.  
  5045. SKIP_TO                 FORTH
  5046.  
  5047. SLOW    ( --- )                 QVIDEO
  5048.         Select the BDOS screen output routines. Mose everything will
  5049.         still work but BOY WILL IT BE SLOW!  NO COLOR SUPPORT in this
  5050.         mode.
  5051.  
  5052. SMASK                   FORTH
  5053.  
  5054. SOURCE  ( --- a1 n1 )           KERNEL2
  5055.         Return a string from the current input stream.
  5056.  
  5057. SP!     ( a1 --- )              KERNEL1
  5058.         ( Warning, this is different from FIG Forth )
  5059.         Sets the parameter stack pointer to the specified value.
  5060.  
  5061. SP0     ( --- a1 )              KERNEL2
  5062.         Empty parameter stack for this task.
  5063.  
  5064. SP@     ( --- a1 )              KERNEL1
  5065.         Return the address of the next entry on the parameter stack
  5066.  
  5067. SPACE   ( --- )                 KERNEL2
  5068.         Send a space to the terminal
  5069.  
  5070. SPACES  ( n1 --- )              KERNEL2
  5071.         Send a set of spaces to the terminal, uses the SPCS array to
  5072.         TYPE the spaces out very quickly
  5073.  
  5074. SPAN    ( --- a1 )              KERNEL2
  5075.         Number of characters input by EXPECT.
  5076.  
  5077. SPCHECK                 FORTH
  5078.  
  5079. SPCS    ( --- a1 )              KERNEL2
  5080.         An array of spaces used by SPACES to display spaces quickly.
  5081.         This array holds 132 spaces, for displays up to 132 columns
  5082.         wide.
  5083.  
  5084. SPLIT   ( n1 --- n2 n3 )        KERNEL1
  5085.         SPLIT the 16 bit value n1 into two stack entries which are the
  5086.         LOW and HIGH bytes of N1. The HIGH byte is on the top of the
  5087.         stack.
  5088.  
  5089. SPLIT-L#                HIDDEN
  5090.  
  5091. SP_SAVE                 HIDDEN
  5092.  
  5093. SRCCR                   FORTH
  5094.  
  5095. SRCEEOLCR               HIDDEN
  5096.  
  5097. SRCOFF  ( --- )                 DECOM
  5098.         A control to the debugger, to cause the source for a word being
  5099.         debugged NOT to be displayed.
  5100.  
  5101. SRCON   ( --- )                 DECOM
  5102.         A control to the debugger, to cause the source for a word being
  5103.         debugged to be displayed.
  5104.  
  5105. SSEG    ( --- a1 )              KERNEL2
  5106.         A VARIABLE that holds the absolure segment where SEARCHing is
  5107.         done.
  5108.  
  5109. SS_SAVE                 HIDDEN
  5110.  
  5111. STACKOVER               FORTH
  5112.  
  5113. STACKUNDER              FORTH
  5114.  
  5115. START   ( --- )                 KERNEL4
  5116.         A minimum initialization word, clears the input stream, and the
  5117.         data stack, then performs DEFAULT, and INTERPRETs the input
  5118.         stream.
  5119.  
  5120. STATE   ( --- a1 )              KERNEL2
  5121.         A USER VARIABLE that holds the system STATE, used to determine
  5122.         if Forth is COMPILING or INTERPRETING.
  5123.  
  5124. STATOFF ( --- )                 STATUS
  5125.         Turn status displaying off.
  5126.  
  5127. STATON  ( --- )                 STATUS
  5128.         Turn status displaying on.
  5129.  
  5130. STATUS  ( -- )                  KERNEL3
  5131.         Indicate the current status of the system.
  5132.  
  5133. STATV                   FORTH
  5134.  
  5135. STIME   ( --- a1 )              TIMER
  5136.         A double variable that holds the BINARY start time for various
  5137.         timing operations.
  5138.  
  5139. STRIPPING_BL'S          HIDDEN
  5140.  
  5141. STRIP_BL'S              HIDDEN
  5142.  
  5143. SUVEC                   FORTH
  5144.  
  5145. SV-CONTEXT              HIDDEN
  5146.  
  5147. SV-CURRENT              HIDDEN
  5148.  
  5149. SVINIT  ( --- )                 SAVESCR
  5150.         Cold start initialization word that allocates some space for
  5151.         the screen save segment.
  5152.  
  5153. SVMAX                   FORTH
  5154.  
  5155. SVSEG   ( --- seg1 )            SAVESCR
  5156.         A constant that returns the segment of the screen save area.
  5157.         When not initialized, svseg return a zero.
  5158.  
  5159. SVSIZE                  FORTH
  5160.  
  5161. SVTOTAL                 FORTH
  5162.  
  5163. SWAP    ( n1 n2 --- n2 n1 )     KERNEL1
  5164.         Exchange the top two elements on the stack.
  5165.  
  5166. SYS     ( | command --- )       EXEC
  5167.         Accept the command line (up to line end) following SYS as a DOS
  5168.         command line.
  5169.  
  5170. T>B     ( d1 --- d2 )           TIMER
  5171.         Convert the d1 DOS double time value to d2 the BINARY time.
  5172.  
  5173. TAB     ( -- )                  KERNEL4
  5174.         Print spaces to get to the next TAB increment as specified by
  5175.         TABSIZE.
  5176.  
  5177. TABSIZE ( --- a1 )              KERNEL4
  5178.         Controls the TAB increment for TAB. Default is 8.
  5179.  
  5180. TELETYPE ( --- )                PRTCTRL
  5181.         Select the dumbest printer, so NOT CONTROL CHARACTER aside from
  5182.         CR and LF will be sent to the printer.  BOLD and UNDERLINE wil
  5183.         not function with this driver.
  5184.  
  5185. TENTHS  ( N1 --- )              TIMESTUF
  5186.         Wait n1 tenths of a second.
  5187.  
  5188. THEN    ( -- )                  KERNEL3
  5189.         Terminate a branch structure. Used in the form:
  5190.         flag IF ... ELSE ... THEN
  5191.  
  5192. THESE   ( --- )                 WORDS
  5193.         A option passed to WORDS, to control whether WORDS will look in
  5194.         all vocabularys, or only the CONTEXT vocabulary.  The following
  5195.         command sequence will cause WORDS to display only those words
  5196.         containing XYZ in the HIDDEN vocabulary:
  5197.         HIDDEN THESE WORDS XYZ <enter>
  5198.  
  5199. TIB     ( --- a1 )              KERNEL2
  5200.         Leaves address of text input buffer.
  5201.  
  5202. TILLKEY ( n1 --- )              TIMESTUF
  5203.         Wait up to n1 seconds for the user to press a key, then
  5204.         continue on whether they have pressed a key or not.
  5205.  
  5206. TIME-ELAPSED ( --- d1 )         TIMER
  5207.         Return d1 the binary time elapsed since the last TIME-RESET.
  5208.  
  5209. TIME-RESET ( --- )              TIMER
  5210.         Reset the start time to the current time.
  5211.  
  5212. TIMER   ( | forth_commands --- )TIMER
  5213.         Measure the time it takes to interpret the forth commands on
  5214.         the following command line.
  5215.  
  5216. TIMERCTRL               FORTH
  5217.  
  5218. TIMERDATA               FORTH
  5219.  
  5220. TIMES   ( N1 -- )               UTILS
  5221.         Re-execute the input stream N1 number of times. Used in the
  5222.         form:  CR HERE . 5 TIMES <enter>
  5223.  
  5224. TIMES   ( n1 -- )               UTILS
  5225.         Re-execute the input stream a specified number of times.
  5226.  
  5227. TLC                     HIDDEN
  5228.  
  5229. TLN                     HIDDEN
  5230.  
  5231. TONE                    FORTH
  5232.  
  5233. TONEGATE                FORTH
  5234.  
  5235. TOPCR                   HIDDEN
  5236.  
  5237. TOPCRS                  HIDDEN
  5238.  
  5239. TOPRINTER ( --- )               PRINT
  5240.         An ALIAS for PCLOSE. Close the current print file, and restore
  5241.         printing to the PRN device.
  5242.  
  5243. TOS     ( --- a1 )              KERNEL2
  5244.         Top OF Stack, Saved during Task switching.
  5245.  
  5246. TOTALLINES ( --- a1 )           SEQREAD
  5247.         A VARIABLE that holds the total number of lines the system has
  5248.         read and compiled since it was last reset. Incremented by
  5249.         LINEREAD.
  5250.  
  5251. TOTALWORDS ( --- a1 )           WORDS
  5252.         Accumulator for the total number of names.
  5253.  
  5254. TRACK-MARKS             HIDDEN
  5255.  
  5256. TRACK-MENU              HIDDEN
  5257.  
  5258. TRACK-MOUSE             FORTH
  5259.  
  5260. TRAVERSE ( a1 direction -- addr' ) KERNEL3
  5261.         Run through a name field in the specified direction. Terminate
  5262.         when a byte whose high order bit is on is detected.
  5263.  
  5264. TRC                     HIDDEN
  5265.  
  5266. TRIM    ( faddr voc-addr -- )   KERNEL3
  5267.         Change the hash pointers in a vocabulary so that they are all
  5268.         less than a specified value, faddr.
  5269.  
  5270. TRUE    ( --- f1 )              KERNEL1
  5271.         A CONSTANT that returns -1, a boolean true.
  5272.  
  5273. TTIME   ( --- a1 )              TIMER
  5274.         A double variable that holds the DOS total time.
  5275.  
  5276. TUCK    ( n1 n2 --- n2 n1 n2 )  KERNEL1
  5277.         Tuck the first element under the second one.
  5278.  
  5279. TURNKEY ( | <name> --- )        SAVEEXE
  5280.         Save a copy of the current memory image to the file <name> as
  5281.         an .EXE file. The LIST segment id compressed as much as
  5282.         possible.  The CODE segment is compressed as much as possible,
  5283.         and the HEAD segment is discarded completely.  The created .EXE
  5284.         file is not Forth any more, and can only perform whatever
  5285.         function was plugged into BOOT or DEFAULT before TURNKEY was
  5286.         performed.  The user is responsible for performing whatever
  5287.         initializaton is needed, and for handling ALL error conditions.
  5288.         However wonderful this word may sound, it is NOT for the faint
  5289.         of heart.
  5290.  
  5291. TX                      HIDDEN
  5292.  
  5293. TY                      HIDDEN
  5294.  
  5295. TYPE    ( a1 n1 --- )           KERNEL2
  5296.         A defered word used to Print a string to the current output
  5297.         device from the segment specified in the variable TYPESEG.
  5298.  
  5299. TYPEL                   FORTH
  5300.  
  5301. U*D     ( n1 n2 --- d1 )        KERNEL1
  5302.         U*D is a synonym for UM*
  5303.  
  5304. U.      ( n1 --- )              KERNEL2
  5305.         Output as an unsigned single number with trailing space.
  5306.  
  5307. U.R     ( n1 n2 --- )           KERNEL2
  5308.         Output as an unsigned single number right justified.
  5309.  
  5310. U16/    ( n1 --- n2 )           KERNEL1
  5311.         Four 16 bit logical right shifts. Unsigned divide by 16
  5312.         decimal.
  5313.  
  5314. U2/     ( n1 --- n2 )           KERNEL1
  5315.         16 bit logical right shift.
  5316.  
  5317. U8/                     FORTH
  5318.  
  5319. U<      ( n1 n2 --- f1 )        KERNEL1
  5320.         Compare the top two elements on the stack as unsigned integers
  5321.         and return true if the second is less than the first. Be sure
  5322.         to use U< whenever comparing addresses, or else strange things
  5323.         will happen beyond 32K.
  5324.  
  5325. U<=     ( un1 un2 --- f1 )      UTILS
  5326.         Unsigned less than or equal.
  5327.  
  5328. U>      ( n1 n2 --- f1 )        KERNEL1
  5329.         Compare the top two elements on the stack as unsigned integers.
  5330.         True if n1 > n2 unsigned.
  5331.  
  5332. U>=     ( n1 n2 --- f1 )        UTILS
  5333.         Unsigned greater than or equal.
  5334.  
  5335. UCSCAN                  FORTH
  5336.  
  5337. UD.     ( d1 --- )              KERNEL2
  5338.         Output as an unsigned double number with a trailing space
  5339.  
  5340. UD.R    ( d1 n1 --- )           KERNEL2
  5341.         Output as an unsigned double number right justified.
  5342.  
  5343. UM*     ( un1 un2 -- ud )       KERNEL1
  5344.         Return a 32 bit unsigned product of two 16 bit unsigned
  5345.         numbers.
  5346.  
  5347. UM/MOD  ( ud un --- uremainder uquotient ) KERNEL1
  5348.         The unsigned double numerator ud is divided by an unsigned
  5349.         single denominator un to produce an unsigned quotient and
  5350.         unsigned remainder.  The quotient is at the top of the stack.
  5351.  
  5352. UMAX                    FORTH
  5353.  
  5354. UMIN                    FORTH
  5355.  
  5356. UNBUG   ( -- )                  DEBUG
  5357.         Remove the debug point currently in place.
  5358.  
  5359. UNDEFER ( | <name> -- )         DEFERS
  5360.         This is sort of an undo for DEFERS.  UNDEFER removes one level
  5361.         from the chain of a defered word.  Must be used with EXTREME
  5362.         caution, as there is no protection from trying to use it at the
  5363.         wrong time in the wrong place.  YOU ARE ON YOUR OWN with this
  5364.         one.  See also DEFERS above.
  5365.  
  5366. UNDO    ( --- )                 KERNEL1
  5367.         Cleans up the return stack so we can EXIT from the current loop
  5368.         without crashing, as in DO and "UN"DO.
  5369.  
  5370. UNEDIT  ( --- )                 TOPEDIT
  5371.         The word that gets plugged into CLEARMEM, which de-allocates
  5372.         the memory used by the editor during an edit session.  This is
  5373.         needed in the case where you want to spawn a DOS shell, as the
  5374.         SED editor consumes all of the available memory during an edit.
  5375.  
  5376. UNINSTALL ( --- )               INSTALL
  5377.         Mark the F-PC currently in memory as un-installed. A subequent
  5378.         FSAVE will result in a system that comes up with the
  5379.         UN-installed message in HELLO.
  5380.  
  5381. UNINSTALLSTUFF ( --- )          UTILS
  5382.         A DEFERed word that is executed by UNINSTALL. Typically
  5383.         contains a chain of function to perform during the un-install
  5384.         process.
  5385.  
  5386. UNNEST  ( --- )                 KERNEL1
  5387.         Same as exit.  Compiled by ; to help decompiling.
  5388.  
  5389. UNTIL   ( f1 -- )               KERNEL3
  5390.         Marks end of a BEGIN ... UNTIL loop; terminate if flag boolean
  5391.         is true.
  5392.  
  5393. UP      ( --- a1 )              KERNEL1
  5394.         Holds a pointer to the current USER area. ( multitasking )
  5395.  
  5396. UPC     ( char --- char' )      KERNEL2
  5397.         Convert a Char to upper Case
  5398.  
  5399. UPPER   ( a1 length --- )       KERNEL2
  5400.         Take the string at the specified address and convert length
  5401.         characters of it to upper case.  It converts the string in
  5402.         place, so be sure to make a copy of the original if you need to
  5403.         use it later.
  5404.  
  5405. USED    ( | <command_line> --- )UTILS
  5406.         A word which calls USED! to save the current values of DP, XDP,
  5407.         and YDP.  USED then executes the command line following, and
  5408.         calculates the space used by the command line and displays the
  5409.         results.  USED is used as follows:   USED FLOAD MYFILE <enter>
  5410.  
  5411. USEDIN  ( | <name> --- )        REF
  5412.         An ALIAS for REF, this word looks through the dictionary and
  5413.         finds words which use <name>, the names are then displayed.
  5414.  
  5415. USER    ( --- )                 KERNEL4
  5416.         VOCABULARY that holds multi tasking  versions of defining
  5417.         words.
  5418.  
  5419. USER    ( | <name> --- )        KERNEL4
  5420.         Vocabulary that holds task versions of defining words.
  5421.  
  5422. V                       FORTH
  5423.  
  5424. VADDR                   FORTH
  5425.  
  5426. VALUE   ( n1 | <name> --- )     KERNEL3
  5427.         Create <name> as a word which like a CONSTANT return its value,
  5428.         but which unlike a constant can be changed with the words: =:,
  5429.         !>, INCR>, DECR>, OFF>, ON>, +!>. Values provide a more
  5430.         readable source code than VARIABLES, and an improvement in
  5431.         performance as well.
  5432.  
  5433. VALUECOLOR              HIDDEN
  5434.  
  5435. VARIABLE ( | <name> -- )        KERNEL3
  5436.         A defining word to create variables. At runtime the address of
  5437.         the variable is placed on the stack.
  5438.  
  5439. VARIABLECOLOR           HIDDEN
  5440.  
  5441. VARIABLE                FORTH
  5442.  
  5443. VF                      FORTH
  5444.  
  5445. VFIND                   FORTH
  5446.  
  5447. VIDEO-SEG ( --- a1 )            VIDEO
  5448.         A variable that holds the segment value of the display screen.
  5449.  
  5450. VIDEO-TYPE ( a1 n1 --- )        VIDEO2
  5451.         The VERY FAST direct screen type routine, displays the string
  5452.         starting at address a1 for length n1 at the current cursor
  5453.         position specified by #LINE and #OUT. #OUT is incremented by
  5454.         n1.  The variable NOSETCUR holds a flag that controls whether
  5455.         VIDEO-TYPE should actually move the cursor during the type.
  5456.         VIDEO-TYPE is much faster if NOSETCUR is TRUE, but then the
  5457.         cursor must be set later with an AT or TYPE with
  5458.         NOSETCUR=FALSE. This TRICK allows F-PC to re-display 10 full
  5459.         text screens per second on an XT (4.7mhz) class machine.
  5460.  
  5461. VIDEO-TYPEL             FORTH
  5462.  
  5463. VIEW    ( | <name> --- )        VIEW
  5464.         A DEFERED word that contains either DOVIEW, or HELPVIEW. View
  5465.         the source for <name>.
  5466.  
  5467. VIEW>   ( vfa -- cfa )          KERNEL3
  5468.         Go from view field address vfa to code field address cfa.
  5469.  
  5470. VIEWFROM                FORTH
  5471.  
  5472. VIEWMACS                HIDDEN
  5473.  
  5474. VMODE-VAR ( --- a1 )            VIDEO
  5475.         A VARIABLE that holds the video mode that was obtained at
  5476.         system startup. See the IBM or Mictosoft documentation for
  5477.         further information on the various video modes.
  5478.  
  5479. VMODE.SET ( --- )               VIDEO
  5480.         Set the VIDEO-SEG variable after testing the current video
  5481.         mode, and perform any needed initialization required by
  5482.         executing the INITMONO, or INITCOLOR as needed.
  5483.  
  5484. VOC-LINK ( --- a1 )             KERNEL2
  5485.          Points to the most recently defined vocabulary.
  5486.  
  5487. VOCABULARY ( | <name> -- )      KERNEL3
  5488.         Defines a new Forth vocabulary <name>.
  5489.  
  5490. VOCOFF                  FORTH
  5491.  
  5492. VOCON                   FORTH
  5493.  
  5494. VOCV                    FORTH
  5495.  
  5496. VYET                    FORTH
  5497.  
  5498. W$                      FORTH
  5499.  
  5500. W.ID                    FORTH
  5501.  
  5502. W.NAME  ( NFA --- )             WORDS
  5503.         Print name of word NFA. Test to see if conditions are correct,
  5504.         like CODE, or ALL, or WITHIN, and print name.
  5505.  
  5506. WARM    ( -- )                  KERNEL4
  5507.         The WARM entry point for Forth, just calles the DEFERed word
  5508.         WARMFUNC, then calls BYE is WARMFUNC returns. A WARM start is
  5509.         invoked whenever the CONTROL BREAK key is pressed.
  5510.  
  5511. WARMFUNC ( --- )                KERNEL4
  5512.         A DEFERed word that is invoked when a warm start occurs. This
  5513.         function is called whenever the CONTROL BREAK key is pressed.
  5514.  
  5515. WARMSTRT ( -- )                 KERNEL4
  5516.         The default function to be performed on a WARM start.  This
  5517.         word is plugged into the DEFERed word WARMFUNC, to specify what
  5518.         is done when the CONTROL BREAK key is pressed.  See also
  5519.         WARMFUNC and WARM.
  5520.  
  5521. WARNING ( --- a1 )              KERNEL2
  5522.         A VARIABLE that holds a boolean flag that determines if you
  5523.         should be warned in the event you re-define a definition name.
  5524.  
  5525. WARNOVER ( --- )                KERNEL3
  5526.         A warning message that is issued by ?STACK in the event you are
  5527.         close to running out of CODE memory.
  5528.  
  5529. WFLBUTTON               HIDDEN
  5530.  
  5531. WHILE   ( f1 -- )               KERNEL3
  5532.         Used in the form  BEGIN <loop> flag WHILE <true> REPEAT. Repeat
  5533.         <loop> and <true> clauses while the flag f1 is true (really,
  5534.         non-zero).
  5535.  
  5536. WHITE   ( --- n1 )              COLOR
  5537.         A CONSTANT that return the value for the color white on a color
  5538.         display. White will blink if used in the background.
  5539.  
  5540. WHITE-ON-BLACK ( --- )          MONOCROM
  5541.         Selects the normal display mode of light characters on a dark
  5542.         background.  The opposite mode is BLACK-ON-WHITE.
  5543.  
  5544. WIDTH   ( --- a1 )              KERNEL2
  5545.         Number of characters to keep in name field.
  5546.  
  5547. WITHHEADS               FORTH
  5548.  
  5549. WITHIN  ( n1 n2 --- f1 )        KERNEL1
  5550.         Return true if min <= n1 < max, otherwise false.
  5551.  
  5552. WITHNAME                HIDDEN
  5553.  
  5554. WITHPATH ( --- f1 )              SEQREAD
  5555.         A boolean VALUE that returns a true flag if the file path is to
  5556.         be included in the name of the variable that gets compiled by
  5557.         LOADED, when adding a new file the loaded file list in the
  5558.         FILES vocabulary. WITHPATH is normally true, so user loaded
  5559.         files can be located in whatever directory they are in.
  5560.         WITHPATH is set to FALSE when compiling the system which allows
  5561.         the VIEWPATH to be applied to system files and have their
  5562.         location specified at installation time.
  5563.  
  5564. WORD    ( C1 --- A1 )           KERNEL2
  5565.         Parse the input stream for char and return a count delimited
  5566.         string at here.  Note there is always a blank following it.
  5567.  
  5568. WORDS   ( | <text> <text> -- )  WORDS
  5569.         Display words that match text. <text> is optional, if ommited
  5570.         then the CONTEXT vocabulary will be displayed.  Two space
  5571.         delimited <text> strings may follow, and only words containing
  5572.         both <text> strings will be printed:
  5573.  
  5574. WORDSAVE                FORTH
  5575.  
  5576. WORDTYPE                FORTH
  5577.  
  5578. WRITE-EXE               FORTH
  5579.  
  5580. WRITE-ONLY              FORTH
  5581.  
  5582. X,      ( n1 --- )              KERNEL2
  5583.         Compile the value n1 into LIST space into the next available
  5584.         address as specified by XDPSEG and XDP.  XDP is incremented by
  5585.         two.
  5586.  
  5587. X,"     ( | <string>" --- )     KERNEL3
  5588.         A " delimited string from the input stream is compiled into
  5589.         LIST space.  This word is used by ." and "" .
  5590.  
  5591. X>"BUF  ( --- "BUF )            KERNEL3
  5592.         This word is compiled by the "" word, it moves the string
  5593.         compiled into LIST space from LIST space to CODE space in the
  5594.         "BUF buffer. The address of "BUF is then returned on the stack.
  5595.  
  5596. XALIGN  ( --- )                 KERNEL3
  5597.         Align XDP to the next higher even value. This word is not
  5598.         currently used in F-PC.
  5599.  
  5600. XBINIT                  HIDDEN
  5601.  
  5602. XBSEG                   HIDDEN
  5603.  
  5604. XBUF#                   HIDDEN
  5605.  
  5606. XBUF#+                  HIDDEN
  5607.  
  5608. XBUF#-                  HIDDEN
  5609.  
  5610. XBUF_INIT               HIDDEN
  5611.  
  5612. XC,     ( n1 --- )              KERNEL2
  5613.         Compile n1 into the next available byte in LIST space. XDP is
  5614.         incremented by one.
  5615.  
  5616. XDOWN                   HIDDEN
  5617.  
  5618. XDP     ( --- a1 )              KERNEL2
  5619.         A VARIABLE that holds the offset into the XDPSEG where the next
  5620.         word in a colon definition will be compiled.  F-PC always
  5621.         aligns colon definitions to the next higher segment boundry at
  5622.         the start of a new definition, causing XDP to equal zero.
  5623.  
  5624. XDPSEG  ( --- a1 )              KERNEL2
  5625.         A VARIABLE that holds the current absolute segment where the
  5626.         next colon definition will be compiled.
  5627.  
  5628. XDPSEGLEN               FORTH
  5629.  
  5630. XDUMP   ( a1 n1 --- )           DUMP
  5631.         DUMP an area of memory in the LIST segment.  A1 is a relative
  5632.         segment offset from XSEG, and n1 is the length to dump in
  5633.         bytes. This is normally used as follows:   ' HEX >BODY @ 10
  5634.         XDUMP
  5635.  
  5636. XEVEN   ( a1 --- a2 )           KERNEL3
  5637.         LIST space is aligned on WORD boundries in F-PC, this word
  5638.         aligns a1 to the next higher even address a2.
  5639.  
  5640. XEXPECT                 HIDDEN
  5641.  
  5642. XFDOS   ( ?? --- ?? )           KERNEL2
  5643.         call INT 21 with most any reg combination used. See the souce
  5644.         for this word in the KERNEL for more information on how to use
  5645.         it.
  5646.  
  5647. XHERE   ( --- seg n1 )          KERNEL2
  5648.         HERE for LIST space, returns the absolute segment SEG and the
  5649.         offset into that segment n1 of HERE in LIST space.
  5650.  
  5651. XMAX                    HIDDEN
  5652.  
  5653. XMOVED                  FORTH
  5654.  
  5655. XOR     ( n1 n2 --- n3 )        KERNEL1
  5656.         Returns the bitwise Exclusive Or of n1 and n2 on the stack.
  5657.  
  5658. XREF    ( | <name> --- )        REF
  5659.         An ALIAS for REF, this word looks through the dictionary and
  5660.         finds words which use <name>, the names are then displayed.
  5661.  
  5662. XSEG    ( --- a1 )              KERNEL1
  5663.         A system variable that holds the  current absolute segment of
  5664.         the LIST area.
  5665.  
  5666. XSEGLEN                 FORTH
  5667.  
  5668. XTMP                    HIDDEN
  5669.  
  5670. XUP                     HIDDEN
  5671.  
  5672. Y!      ( n1 a1 --- )           KERNEL2
  5673.         Store the value n1 into the address a1 in HEAD space.
  5674.  
  5675. Y,      ( n1 --- )              KERNEL2
  5676.         Compile the value n1 into the next available location in HEAD
  5677.         space.  YDP is incremented by two.
  5678.  
  5679. Y-M-D   ( --- )                 TIMER
  5680.         Switch the system to using the date format Year-Month-Day.
  5681.  
  5682. Y@      ( a1 --- n1 )           KERNEL2
  5683.         Fetch the 16 bit contents of a1 in HEAD space and return it as
  5684.         n1.
  5685.  
  5686. YC!     ( n1 a1 --- )           KERNEL2
  5687.         Store the byte value n1 into address a1 in HEAD space.
  5688.  
  5689. YC@     ( a1 --- n1 )           KERNEL2
  5690.         Fetch the byte contents of a1 in HEAD space, and return it as
  5691.         n1.
  5692.  
  5693. YCOUNT  ( a1 --- a2 n1 )        UTILS
  5694.         The byte at a1 in HEAD space is returned as n1, and a2=a1+1.
  5695.  
  5696. YCSET   ( byte a1 --- )         KERNEL2
  5697.         The byte located at a1 in HEAD space is ored with byte, and the
  5698.         result is saved back into addr.
  5699.  
  5700. YDP     ( --- a1 )              KERNEL2
  5701.         A variable that holds the address in HEAD space of the next
  5702.         available byte.
  5703.  
  5704. YDP-HW                  HIDDEN
  5705.  
  5706. YDP-REG                 HIDDEN
  5707.  
  5708. YDP-SHIFT               HIDDEN
  5709.  
  5710. YDUMP   ( A1 N1 --- )           DUMP
  5711.         Dump an area of the HEAD segment.
  5712.  
  5713. YELLOW  ( --- n1 )              COLOR
  5714.         The color value for YELLOW on a color monitor. Yellow blinks
  5715.         when used in background.
  5716.  
  5717. YHASH   ( yname vocaddr --- thre) KERNEL2
  5718.         Using the name address in HEAD space, and the vocabulary
  5719.         address, determine the address thread in the vocabulary that
  5720.         yname should go into.  Used by HIDE and REVEAL.
  5721.  
  5722. YHERE   ( --- a1 )              KERNEL2
  5723.         Push the contents of YDP the new HEAD pointer on the stack.
  5724.  
  5725. YS:     ( a1 --- yseg a1 )      KERNEL2
  5726.         Place a copy of the current HEAD segment under the address a1
  5727.         on the stack.
  5728.  
  5729. YSEG    ( -- a1 )               KERNEL1
  5730.         A variable which holds the base of Head space.
  5731.  
  5732. YSTART  ( --- a1 )              KERNEL2
  5733.         System variable, If non-zero, ptr to start of headers after
  5734.         dictionary. Used to set DP in when SAVE-SYSTEM is used in
  5735.         making a .COM file.
  5736.  
  5737. [       ( -- )                  KERNEL3
  5738.         Stop compiling and start interpreting.
  5739.  
  5740. [']     ( | <name> -- )         KERNEL3
  5741.         Compile the CFA of <name> as a literal in a colon definition.
  5742.         Like ' only used while compiling
  5743.  
  5744. [COMPILE] ( | <name> -- )       KERNEL3
  5745.         Force <name> which is normally an immediate word to be compiled
  5746.         like any other word.
  5747.  
  5748. \       ( -- )                  KERNEL4
  5749.        This line is a comment till the end of this line, and any text
  5750.         after the \ is ignored.
  5751.  
  5752. \%AT                    FORTH
  5753.  
  5754. \%SPACES                FORTH
  5755.  
  5756. \%TENTHS                FORTH
  5757.  
  5758. \AT-REST                FORTH
  5759.  
  5760. \AT-SAVE                FORTH
  5761.  
  5762. \CHARS                  FORTH
  5763.  
  5764. \EMIT                   FORTH
  5765.  
  5766. \S      ( n1 --- )              SEQREAD
  5767.         Stop loading the current file with the line that contains this
  5768.         word.
  5769.  
  5770. \TYPE                   FORTH
  5771.  
  5772. \TYPEL                  FORTH
  5773.  
  5774. \U                      FORTH
  5775.  
  5776. \UNLESS ( | <name> --- )        UTILS
  5777.         An immediate word, dont load this line  of source UNLESS <name>
  5778.         is defined, that is treat this line as a comment if <name> is
  5779.         not defined.
  5780.  
  5781. \X                      FORTH
  5782.  
  5783. \Y                      FORTH
  5784.  
  5785. \\                      FORTH
  5786.  
  5787. ]       ( -- )                  KERNEL3
  5788.         The Compiling Loop. First sets Compile State. Looks up the next
  5789.         word in the input stream and either executes it or compiles it
  5790.         depending upon whether or not it is immediate. If the word is
  5791.         not in the dictionary, it converts it to a number, either
  5792.         single or double precision depending on whether or not any
  5793.         punctuation was present. Continues until input stream is empty
  5794.         or state changes.
  5795.  
  5796. ^CHAR                   FORTH
  5797.  
  5798. ^NUM                    FORTH
  5799.  
  5800. _BEHEAD                 HIDDEN
  5801.  
  5802. _HEADERLESS             HIDDEN
  5803.  
  5804. _HEADERS ( -- )                 BEHEAD          HIDDEN
  5805.         Internal beheader system word.
  5806.  
  5807. `       ( command --- )         EXEC
  5808.         A pseudonym for SYS. See also SYS.
  5809.  
  5810.