Code: Select all
2CONSTANT 2VARIABLE
DMIN DMAX D= D2/ D0= D< DU<
+LOOP LOOP ?DO DO WHILE REPEAT UNTIL
AGAIN BEGIN ELSE ELIF THEN AHEAD IF
<RESOLVE >RESOLVE <MARK >MARK FORTH-83 (
.( UPDATE FLUSH FSAVE FREEZE [COMPILE] [']
ABORT" ." ," ?CHAR LOAD LINELOAD COLD
EMPTY FORGET DOPEN (DOS") DCLOSE CMD (DR/W)
SR/W CBP BCMD DOUT T&S D&S DISKS
SSD DSD DIN DTYPE DEMIT ?DISK (?DISK)
?D .DERR (?D) IOERR SIOERR >LF# >LF#.B
DR# DRIVE SARRAY FORTH DEFINITIONS
VOCABULARY VARIABLE DOES> USER CONSTANT DEFER
-SET ID. : CREATE FREE ; ?CSP
?PAIRS ABORT QUIT INTERPRET NUMBER CONVERT '
NAME FIND VFIND QUERY LITERAL ?STACK COMPILE
?FIND ?COMP (ABORT") WHERE WHERE? WORD (CHAR)
'STREAM IORESET $? U.R U. .R .
S>D UD.R UD. (UD.) D.R D. (D.)
#S # SIGN HOLD #> <# SPACES
SPACE (;CODE) ?CR CR [ ] IMMEDIATE
SMUDGE -TRAILING LATEST C, , ALLOT PAD
HERE KEY SINGLE (VALID?) HEX DECIMAL PAGE
(") (.") CONFIGURE (IS) L>NAME N>LINK BODY>
>BODY LINK> >LINK NAME> >NAME EMPTY-BUFFERS
SAVE-BUFFERS ERASE BUFFER BLOCK >BT R/W
MRU LRU #BUF (MSAVE) (OPEN) (CHKOUT) (CHKIN)
2SWAP 2ROT BOOTCOLORS ROFF RON UMAX
UMIN MAX MIN */ MOD * NIP
/ TUCK /MOD */MOD UD/MOD UM/MOD M*
UM* UNDER+ COUNT 2DROP DROP OVER 2DUP
-ROT ?DUP DUP PICK 2OVER SWAP ROT
TOGGLE +! 2! 2@ C! ! C@
@ 2* 2/ D+ + D- -
1- 2- 1+ 2+ DUP>R R@ 2R>
2>R R> >R DIGIT <> > <
U< = 0< 0> 0<> 0= OFF
ON NOT XOR OR AND DABS DNEGATE
ABS NEGATE J I UNLOOP RP! SP!
SP@ CLRCHN CLOSE FILL SKIP SCAN DEPTH
>HERE CMOVE MOVE CMOVE> (?KEY) EXECUTE TRAVERSE
(EXPECT) (QTYPE) (TYPE) (EMIT) >LOWER RR/W DR/W
VALID? ERR INITIAL QTYPE TYPE EMIT EXPECT
?KEY PAUSE COLS #USER TIB LIMIT T/F
B/BUF C/L BL 3 2 VIEW #LINE
#OUT #TIB SCR CSP CURRENT CONTEXT SPAN
STATE >IN BLK VOC-LINK FENCE HLD DPL
BASE DP SPMAX RP0 SP0 1 0
FALSE TRUE (FIND) NOOP ACLOSE ?BRANCH BRANCH
(>ASSEM) (>FORTH) (+LOOP) ROLL ?EXIT 0EXIT EXIT
?LEAVE LEAVE (?DO) (LOOP) (DO) CLIT LIT
Jim