by [ name | topic | voc ] [ glos | files | xref ] [ notation | dpans94 | syscalls ] [ bot | top ]

lib4th 1-1-4+18 short reference, sorted by vocabularies

Latest library source -re- lib4th homepage.

Text formatted for the lynx html-browser and for plain text printing, 132 chars/line
|                                                                                                                118>|

    
NameAsm-LabelWordlistComment
 (imed)
 
  
<>nequalans( n1 n2 -- f ) ff if @tos = @nos
->tovans-re- {to} for "pforth" (etc)
'atickansfetch xec token ix by name
[']tickanscpl xec token ix fetched by name
+>pltovans-re- {to} for "pforth" (etc)
[0=]izeqansimmediate flag inversion, {0=}
0<>zneqans( n -- f ) tf if non-zero sing
2!twostoaans( d p -- ) sto double to mem, BIG ENDIAN (ANS!)
2/shr2anssigned shift sing right by one
2@twofetchaans( p -- d ) fetch double, BIG ENDIAN (ANS!)
2literaladliteralanscpl ANS mode (big endian) double literal
2>Rator2ans( n1 n2 -- )(R -- n1 n2 ) push to r-stack, BIG ENDIAN
2R>arfrom2ans(R d -- )( -- d ) pop double from rstack,BIG ENDIAN
2R@ar2fans(R d -- d )( -- d ) copy double from rstack, BIG ENDIAN
abitsmul8ansmul by no. of bits per address unit
ABSaabsanstwo-s cpl if sing -ve, '-0' unchanged
anewmarkerans{marker}, for 'common useage' compatibility...
a-numberanumberansconvert stg to number - ANS-mode
CASEcaseansbegin a CASE decision sequence
CELL/cellbyansfloored div sing by bytes per cell (4)
CELLSmul4ansmul sing by bytes per cell (4)
CHARcharanscpl character value literal
[CHAR]charanscompile character value literal
close-dirclosefansclose a directory-file
;CODEscodeansterminate colon defn, continue 'lo level'
CONVERTconvertaansconvert stg to number - ANS-mode
COUNTcountans( p1 -- p2 u ) chars(bytes?) count of a counted string
D<>dneqanstf if doubles not equal
D0<>dzneqansff if double @tos is zero
DEFAULTnoopanslast alternative in CASE sequence - a noop
[DEFINED]definedansre {defined}
DFALIGNdfalignans( -- ) 12.6.2.1205 12.6.2.1205
DFALIGNEDdfalignedans( p1 -- p2 ) 12.6.2.1207 12.6.2.1207
DFLOAT+dfloatpans( n1 -- n2 ) 12.6.2.1208 12.6.2.1208
DFLOATSdfloatsans( n1 -- n2 ) mul-16, 12.6.2.1209 12.6.2.1209
?DUPqdupans( n -- n n | 0 ) dup if dup endif ; {-dup}
ENDCASEendcaseansterminate CASE sequence
ENDOFendofansterminate OF-part in CASE sequence
FALIGNfalignans( -- ) 12.6.1.1479 12.6.1.1479
FALIGNEDfalignedans( p1 -- p2 ) 12.6.1.1483 12.6.1.1483
[FALSE]zeroansimmediate cons 0
FILE-STATUSafstatfansfile state by name -re- linux {file-status}
FLOATfloatansans-voc, real numbers
FLOAT+floatpans( p1 -- p2 ) 12.6.1.1555 12.6.1.1555
FLOATSfloatsans( n1 -- n2 ) mul-8 12.6.1.1556 12.6.1.1556
GET-ORDERgorderanscontent + count of voc-stack
(LOCAL)plocalpanslocal wordheader by supplied stg
?msqmsanstime in milli-seconds since host startup
?NEGATEspmans( n1 n2 -- n3 ) apply sign of sing n2 to sing n1
NIPsdropans( n1 n2 -- n2 ) ; swap drop
NUMBERanumberansconvert stg to double - ANS-mode
OFofansbegin true decision part in a CASE sequence
POSTPONEbcbansdelay execution
RP!arpstoreans( p -- )(R -- ) rst returnstack-ptr to ptr
S>Ds2dnanssigned sing to double
SEARCH-WORDLISTswlistansfind a name in given wordlist
SFALIGNsfalignans( -- ) 12.6.2.2204 12.6.2.2204
SFALIGNEDsfalignedans( p1 -- p2 ) 12.6.2.2206 12.6.2.2206
SFLOAT+sfloatpans( n1 -- n2 ) 12.6.2.2207 12.6.2.2207
SFLOATSsfloatsans( n1 -- n2 ) mul8 12.6.2.2208 12.6.2.2208
SP!aspstoreans( p -- ) set datastack-ptr to kref'd supplied value
THENendifansterminate IF/ELSE sequence
[TRUE]trueansimmediate cons -1
TUCKsoverans( n1 n2 -- n2 n1 n2 ) ; swap over
U>Du2dnanssing to unsigned double
UNLOOPunloopansat runtime discard loop control data
WHILEwhileaansif @tos = 0 leave BEGIN structure
WORDLIST?wordlqansitem no of stacked wordlist by wid, or -1
WRITE-FILEawritefileanswrite no. of bytes from buffer to file, ans-mode
8*+mp8asmhidden( n -- n ) { 8 * + }
c0-c0masmhidden( n -- n ) { $c0 - }
c0+c0pasmhidden( n -- n ) { $c0 + }
c0-8*c0m8masmhidden( n -- n ) { $c0 - 8 * }
16*+mp16assembler( n -- n ) { 16 * + }
asm-hiddenasmhiddenassemblerroot-voc, native code cpl. words
<call>lcallgassemblerx86 op-code, call pc-rel
(;code)pscodepassemblerruntime for 'does>'
(;code@)pscodefpassemblerruntime for '@does>'
end-codeendcodeassemblerterminate -re- {code} defn
<jmp>ljmpgassemblerx86 op-code, jmp near pc-rel
<jr>ljrgassemblerx86 op-code, jmp short pc-rel
<nop>lnopgassemblerx86 op-code, nop
<ret>lretgassemblerx86 op-code, ret
2n->2qn22qbignumbignum pair to quad
2n->2uqn22uqbignumbignum pair unsigned to quad
2q->2nq22nbignumquad pair to bignum
2q->2unq22unbignumquad pair unsigned to bignum
lg(nn)lgnnbignumsing numerus of log(bignum)(sing)
(n.)pndotpbignumconvert signed counted int to stg
n^npowbignum( n.N m -- p.P ) n.N to the power of m
n<#nlthbignumprepare counted int stg conversion
n=neqbignumsigned compare two bignums
n-nsubbignumnormalize & subtract two bignums
n->ntoqbignumsigned reduce bignum to minimal cell size
n!nstorebignumstore counted integer
n!+nstorepbignumstore counted int, leave advanced ptr
n/nbybignumsigned divide two counted ints
n.ndotbignumsend numeric bignum stg to stdout
n@nfetchbignumfetch counted integer
n@+nfetchpbignumfetch counted int, leave advanced ptr
n*nmulbignummultiply two counted ints
n#nhbignumextract l.s. digit of bignum to stg
n#>nhgtbignumfinish counted int to stg conversion
n#?nhqbignumptr and flg whether stg conversion possible
n+naddbignumnormalize & add two bignums
n+-npmbignumapply sign of sing to bignum
?n0=qnzeqbignumnon-destructively test counted int for zero
n0<nzltbignumtest counted int for < zero
n0=nzeqbignumtest counted int for zero
n0>nzgtbignumtest counted int for > zero
n1-nonembignumdec counted int by 1
n1+nonepbignuminc counted int by 1
n2/nn2divbignumdivide counted int by 2
n2*nn2mulbignummultiply counted int by 2
n/2^32nd32bignumdivide counted int by 2^32
n*2^32nm32bignummultiply counted int by 2^32
n2dupnn2dupbignumdup double counted int
nabsnabsbignumabs value of counted int
ncmpncmpbignumret sign of subtraction of two bignums
?ncmpqncmpbignumnon-destr. ret sgn(diff of two counted ints)
ndropndropbignumdrop counted int
ngcdngcdbignumret greatest common divisor of two bignums
nintegernintegerbignumcounted int alterable constant
ninvertninvertbignum1's cpl counted int
nliteralnliteralbignumcpl multi-cell literal
nlshiftnlshiftbignumshift left counted int
n#maxnhmaxbignummax size for counted int to stg
nminusnminusbignum2's cpl of counted int
n/modnbymbignumsigned divide two counted ints w/ remainder
n->nntonbignumsign extend bignum
nn->ddn22dbignumbignum pair to data
nndropnndropbignumdrop a number of counted ints
nndupnndupbignumdup counted int
nnegatenminusbignumnegate counted int
nnormnnormbignumnormalize top two bignums to equal size
nnovernnoverbignumover counted int
nnpicknnpickbignumpick counted int
nn>rnntorbignumcounted int from data-stack to return-stack
nnr>nnrfrombignumbignum from return-stack to data-stack
nnrollnnrollbignum+/- roll counted ints
nnrotnnrotbignum( n1.N m2.M o3.O -- m2.M o3.O n1.N ) rot counted ints
nn-rotnnmrotbignumrot back counted ints
nnsdropnnsdropbignum( n.N m.M -- m.M ) , -1 nnpick
nnswapnnswapbignum( n1.N m2.M -- m2.M n1.N ) swap counted ints
nnumbernnumberbignumconvert stg to counted int
n>numberntonumberbignumconvert stg to bignum until invalid char
n->qn2qbignumbignum to quad
nrshiftnrshiftbignum( n1.N n2 -- n2.M ) shift right counted int
n#snhsbignumconvert bignum to numeric chars
nsgnnsgnbignum( n1.N -- n2 ) signum of a counted int
nshiftnshiftbignum( n1.N n2 -- n3.N ) shift bignum +n2 left, -n2 right
n#sizenhsizebignummemory requirement for num to stg conversion
nsqrtnsqrtbignum( n1 -- n2.N ) square root of a counted int
n-toppdovarbignummemtop for bignum to stg conversion
n->unn2unbignummodify bignum to unsigned
q->nq2nbignum( q1 -- n1.N ) quad to bignum
s>nfactorials2nfacbignum( n1 -- n2.N ) counted int factorial of a sing
(un.)pundotpbignumconvert unsigned counted int to stg
un.undotbignum( .n1.N -- ) send unsigned numeric bignum stg to stdout
uns*unsmulbignum( n1.N n2 -- n3.(N+1) ) unsgd mul counted int by sing
uns/modunsbymbignum( n1.N n2 -- q3.Q n4r ) unsgd div counted int by sing
un->ununtounbignum( n1.N M -- n2.M ) unsigned extend counted int
blk>bufblk2bufblkfileptr to screenfile buffer by blk#
blk>headblk2headblkfileptr to header of screenfile block by blk#
blkhead-sizepdovalblkfilesize of a per screenfile block header
blk>lnkblk2lnkblkfileptr to buffer-block by block-no.
block-lkpdovarblkfilebase link of screenfile storage blocks
(boot)pdovarblkfiledft -re- {l-load} library file
buf>blkbuf2blkblkfileblock no. assigned to a screenfile buffer
buf>headbuf2headblkfileptr to header of screenfile block by ptr
bufhead-sizepdovalblkfilesize of a (kernel-)block buffer header
buf>lnkbuf2lnkblkfileptr to buffer-block by block-buffer ptr.
del-bufferfgbblokblkfileremove {latest} buffer block, if possible
dr?schqblkfilewhether {scr-chan} is dr0, dr1 or neither one
edittingedingblkfilemodify screenfile access to r/w
empty-blkemblkblkfileinvalidate a single blockfile buffer
[first]pdovalblkfilebot. of 1st block buffer, 0 if unassigned
head>blkhead2blkblkfileptr to buffer by ptr to header
head>bufhead2bufblkfileblock no. by ptr to header
ibbufibbufblkfileinitiate/install a buffer w/ 4 blocks
[limit]pdovalblkfiletop+1 of last block buffer, 0 if unassigned
lnk>chnlnk2chnblkfilebuffer block owner channel
lnk>numlnk2numblkfilebuffer block count of buffers
lnk>taglnk2tagblkfilebuffer block owner channel's tag no.
nextbufnextbufblkfile{+buf} wrt by -re- {source-id} used blocks
[prev]pdovalblkfileptr to most recently used block buffer
readingrdingblkfilemodify screenfile access to r/o
ro?roqblkfilequery write protection mode
rw!rwsblkfileaequivalent to f.i.g. { 0 r/w }
rw@rwfblkfileaequivalent to f.i.g. { 1 r/w }
scrfposscrfposblkfilescr-chan file-ptr at scr@+r#@
update?updateqblkfileflag whether blk -re- {update}d
update-offupdateoffblkfileclear screenfile buffer update flag
[use]pdovalblkfileptr to block buffer to use next
[;]bsemibcompilerreturn address adjustmt, -re- {;r} runtime
[:]bcolonbcompilercode-space adjustmt for safe return, by {:r}
[[llbraccompilerdec cpl nesting level by two, interpret if < 1
]]rrbraccompilerenter structure compiling state
ascizhascizcompilercpl next stg in asciz-mode
call,c_callcompiler( -- ) call dword disp
call-by-dispcbdispcompilercpl relative calls by disp
call-by-uotcbuotcompilercpl indirect call by address in uot
casedepcasedepcompilerset latest word to case-dependent find mode
cdepthcdepthcompilerdepth of compile-stack doubles
cmachcmaccompilerh-flg, enable macroes cpl
cmc?cmcqcompilerstate of optimizing token counter
(cp)uprevcpcompilerby {compile,} previously used code-ptr
[debug]bdebugbcompilerdefault (debug) opr
dlit,c_dlitcompiler( d -- ) cpl double literal
dodoes,c_ddscompiler( -- ) cpl dodoes, pfa to be patched to start+2
end-macrocendmacrocompilerterminate macro code-expansion cpl
flg>headflg2headcompiler( n ix -- n ) set/clr header flag
flit,c_flitcompiler( f -- ) cpl double precision f.p. literal (n.i.)
imedhimedcompilerh-flg, xec immediately
imed?imedqcompilertf if word (by lfa) is immediate
inifhinifcompilerh-flg, init from header fields at system startup
[interpret]binterpretbcompilerdefault (interpret) opr
]interpretbintercompilerxec (]interpret)
interpret[interbcompilerxec (interpret[)
itld,c_itldcompiler( n -- ) load T register, mov edx,imed
itos,c_itoscompiler( -- ) mov eax,imed
itos1,c_itos1compiler( n -- ) mov TOS(1),imed
iwld,c_iwldcompiler( n -- ) load W register, mov ecx,imed
(ix)uprevixcompilerpreviously cpl'd ix
ixechixeccompilerh-flg, xec always
jccn,c_jccncompiler( -- ) jcc near disp
jccs,c_jccscompiler( -- ) jcc short disp
jmpn,c_jmpncompiler( -- ) jmp near disp
jmps,c_jmpscompiler( -- ) jmp short disp
kcall,c_kcallcompiler( disp -- ) call [dword kref (disp)]
ktos,c_ktoscompiler( disp -- ) mov eax,[kref (disp)]
ktos1,c_ktos1compiler( disp -- ) mov ecx,[kref (disp)]
ktosm,c_ktosmcompiler( -- ) mov TOS(1),ecx
lit,c_litcompiler( n -- ) cpl single literal; spush, mov eax,dword n
litp,c_litpcompiler( n -- ) cpl single literal, add eax,dword n
locp,c_locpcompiler( n -- ) cpl ptr to a local "value",
locrmvlocrmvcompilerintermediate local values de-allocation
locto,c_loctocompiler( -n -- ) cpl local "to",
locv,c_locvcompiler( n -- ) cpl single local "value",
mac-dispmacdispcompiler( ix -- n ) +n disp xec to start of macro code
macrocmacrocompilerbegin macro code-expansion cpl
mac-sizemacsizecompiler( ix -- n ) no. of bytes cpl'd in macro mode
nlit,c_nlitcompiler( .x. N -- ) cpl counted integer
nopthnoptcompilerh-flg, non-optimizing
pfaxhpfaxcompilerh-flg, pc-rel xec vector @pfa, data-field(s) follow
plocto,c_ploctocompiler( -n -- ) cpl local "+to",
plsto,c_plstocompiler( n -- n ) prep add & drop @tos to "value"
qlit,c_qlitcompiler( q -- ) cpl quad literal
qvlit,c_qvlitcompiler( qv -- ) cpl quad ranum literal
ret,c_retcompiler( disp -- ) return from suroutine call
smudhsmudcompilerh-flg, sumudged ("find" disabled)
spop,c_spopcompiler( -- ) drop @nos into @tos
spush,c_spushcompiler( -- ) push @tos, free @tos for data item
spush2,c_spush2compiler( -- ) push souble @tos for double data item
sto,c_stocompiler( n -- n ) prep sto & drop @tos to "value"
tospull,c_tospullcompiler( -- ) TOSPULL(1), dec PS by one cell
tospush,c_tospushcompiler( -- ) TOSPUSH(1), inc PS by one cell
utod,c_utodcompiler( disp -- ) mov eax,[uref (disp)]
utosa,c_utosacompiler( disp -- ) add eax,[uref (disp)], add uvari
valu,c_valucompiler( n -- ) cpl "value"; spush, mov eax,[kref dword n]
varfhvarfcompilerh-flg, vari, 2nd header-field disp to dataspace
vocfhvocfcompilerh-flg, word is a vocabulary
wcashwcascompilerh-flg, search letter-case dependently, only
xcall,c_xcallcompiler( disp -- ) call [uref uv.ultab+(disp)]
xcalla,c_xcallacompiler( -- ) call [uref 4*reg+uv.ultab]
xjmp,c_xjmpcompiler( disp -- ) jmp [uref uv.ultab+(disp)]
xtos,c_xtoscompiler( disp -- ) mov eax,[uref uv.ultab+(disp)
xwflhxwflcompilerh-flg, count of parameter fields, no-exec flag
1linee1lineeditorfind in curs-line
BeBeditorbackup by text len in pad
b/cbbyceditorbytes per character (8)
CeCeditorindsert text
CLEARcleareditorfill screen w/ blanks
COPYcopyeditorcopy 1st to 2nd screen
c/scrpdovaleditorchars per editor screen (1024)
DeDeditorpush line to pad
DELETEdeleteeditordel chars backward
EeEeditorblank line
[edit]beditbeditor{edit} default opr.
FeFeditorfind text
[f]bfbeditor-find w/ forth voc preferrence
FINDefindeditorfind stg at pad in screen
HeHeditorcopy line to pad
IeIeditorins line from pad
Lrelisteditorre-list @{scr}
L-relimeditorlist previous @{scr}
L+relipeditorlist next @{scr}
#laghlageditorptr & count after curs
#leadhleadeditorptr & count till curs
LINElineeditorptr to line or abort-16
.LINEdotlineeditordisplay line/screen
(line)plinepeditorfetch line/screen
#lmgpdovaleditoreditor screen & printing, left margin
#locatehlocateeditorline no, curpos
MeMeditormove curs
matchmatcheditorsearch mem for stg
max-lwmaxlweditormax stdout line width
-movemmoveeditorcopy from ptr to line
NeNeditornext find
PePeditorput text to line
#pcolpdovaleditortext to file, chars/line
#prowpdovaleditortext to file, rows/page
ReReditorreplace line from pad
r#unreditoruvari, chars count till cursor
r#@rnfeditor{ r# @ } get cursor count
readm-c/lreadmcleditor( p u -- p' u' p1 u1 ) c/l chars(=bytes) from mem
#rmgpdovaleditoreditor screen & printing, right margin
SeSeeditorins empty line
scr!scrseditor{ scr ! } sto screen no.
scr@scrfeditor{ scr @ } fetch screen no.
TeTeditortype and copy line to pad
texttexteditorfetch by char delimited text to pad
-textmtexteditorfind text in stg
TILLtilleditorerase till text end
TOPetopeditorcursor to top left
TRUNCATEtruncateeditorset size of screenfile
XeXeditordelete text
YeYeditorinsert stg
ADDRESS-UNIT-BITSaubenvironmentconsecutive bits per address unit
BLOCKbcoreenvironmentwordset availabilty flag
BLOCK-EXTbcorexenvironmentwordset availabilty flag
COREacoreenvironmentwordset availabilty flag
CORE-EXTacorexenvironmentwordset availabilty flag
/COUNTED-STRINGscstgenvironmentmax. length of a counted string
DATASTACK-SIZEdssenvironmentcells available for data-stack
DOUBLEdcoreenvironmentwordset availabilty flag
DOUBLE-EXTdcorexenvironmentwordset availabilty flag
EXCEPTIONxcoreenvironment(untested, hi-level substitutes available)
EXCEPTION-EXTxcorexenvironmentwordset availabilty flag
FACILITYccoreenvironmentwordset availabilty flag
FACILITY-EXTccorexenvironmentwordset availabilty flag
FILEfcoreenvironmentwordset availabilty flag
FILE-EXTfcorexenvironmentwordset availabilty flag
FLOATINGfltingenvironmentwordset availabilty flag
FLOATING-EXTfltingxenvironmentwordset availabilty flag
FLOOREDflooredenvironmentflag whether defaul div is 'floored'
/HOLDsholdenvironmentsize of numeric stg conversion buffer
LIB4THl4eenvironmentflag, "lib4th" present
LOCALSlcoreenvironmentwordset availabilty flag
#LOCALSnlocalsenvironmentcells available for local data
LOCALS-EXTlcorexenvironmentwordset availabilty flag
MAX-CHARmxcenvironmenthighest character code
MAX-Dmxdenvironmentgreatest signed double integer value
MAX-FLOATmxfltenvironmentgreatest floating pt. integral value
MAX-Nmxnenvironmentgreatest signed single integer value
MAX-Umxuenvironmentgreatest unsigned single integer value
MAX-UDmxudenvironmentgreatest unsigned double integer value
MEMORY-ALLOCmcoreenvironmentRESIZE restricted to top alloc. block
/PADspadenvironmentsize of {pad} buffer
RETURNSTACK-CELLSrscenvironmentcells available for return-stack
SEARCH-ORDERscoreenvironmentwordset availabilty flag
SEARCH-ORDER-EXTscorexenvironmentwordset availabilty flag
STACK-CELLSsssenvironmentcells available for data-stack
STRINGgcoreenvironmentwordset availabilty flag
TOOLStcoreenvironmentwordset availabilty flag
TOOLS-EXTtcorexenvironmentwordset availabilty flag
2!twostofig( d p -- ) sto double to mem
2@twofetchfig( p -- d ) fetch double
2notdnotfig( d1 -- d2 ) one-s complement a double
blanksblanksfig( p +u -- ) fill memory w. blanks
b/scrbbyscrfigbuffer blocks per screen(1)
+bufplusbuffignext buffer
c/lcbylfigchars per line (64)
convertconvertfigconvert stg to number - f.i.g.-mode
dminusdnegatefig( d1 -- d2 ) negate a double
editoreditorfigfig-forth-voc, editting
encloseenclosefigisolate a word from tib -?-
firstfirstfigbot. of 1st block buffer, 0 if unassigned
f-numberfnumberfigconvert stg to double - f.i.g-mode
inxinfigparsed terminal input count
leavexleavefigunconditionally leave DO-loop at next LOOP
-leavedleavefigLEAVE if @tos =/= 0
limitlimitfigtop+1 of last block buffer, 0 if unassigned
minusnegatefig( n1 -- n2 ) negate sing
numberfnumberfigconvert stg to double - f.i.g-mode
[number]bnumberbfigf.i.g. mode stg to number conversion
offsetpdovalfigblock disp by multiple of -re- {b/scr} (1)
prevprevfigscreenfile blockbuffer currently in use
signsignfigfig-variant, sign cell 3rd from tos
smudgesmudgefigtoggle find-ability of latest word
sp!fspstorefig( -- .xx. ) rst datastack-ptr from uvari {r0}
toggletogglefig( p c -- ) xor byte in memory - fig, reversed opr
trueponefigcons 1
true=ftequfig( n -- f ) tf if cell is f.i.g.-mode 'true' value
useusefigleast recently used screenfile blockbuffer
wordxwordfigfetch text enclosed by supplied char to {here}
DEG>RADdeg2radfloat( f1 -- f2 ) convert degrees to radians
D>Fdtoffloat( d1 -- f2 ) 12.6.1.1130 12.6.1.1130
DF!dfstorefloat( f1 p -- ) 12.6.2.1203 12.6.2.1203
DF.dfdotffloat( df1 -- ) print double float (quad ranum)
DF@dffetchfloat( p -- df1 ) 12.6.2.1204 12.6.2.1204
DFATANHdfatanhfloat( df1 -- df2 ) area tanh double float
DF>Fdftoffloat( df1 -- f2 ) 12.6.1.1130 12.6.1.1130
>DFLOATtodfloatfloat( p u -- df2 ) convert stg to quad ranum, d"float"
DFOVERdfoverfloat( df1 df2 -- df1 df2 df1 )
DFPICKdfpickfloat( df1... n1 -- df1 ) pick double float
DFROTdfrotfloat( df1 df2 df3 -- df2 df3 df1 )
DFSWAPdfswapfloat( df1 df2 -- df2 df1 )
ENDfendfloat( -- ) terminate FOR-loop at next NEXT
F^fpowfloat( f1 f2 -- f3 ) f1 to the power of f2
F~faeqfloat( f1 f2 f3 -- flg ) 12.6.2.1640 12.6.2.1640 (-?-)
F<fltfloat( f1 -- flg ) 12.6.1.1460 12.6.1.1460
F-fsubffloat( f1 f2 -- f3 ) 12.6.1.1425 12.6.1.1425
F!fstorefloat( f1 p -- ) 12.6.1.1400 12.6.1.1400
F/fbyfloat( f1 f2 -- f3 ) 12.6.1.1430 12.6.1.1430
F.fdotfloat( f1 -- ) 12.6.2.1427 12.6.2.1427
F@ffetchfloat( p -- f1 ) 12.6.1.1472 12.6.1.1472
F*fmulffloat( f1 f2 -- f3 ) 12.6.1.1410 12.6.1.1410
F**fpowfloat( f1 f2 -- f3 ) 12.6.2.1415 12.6.2.1415
F+fplusfloat( f1 f2 -- f3 ) 12.6.1.1420 12.6.1.1420
F0<fzltfloat( f1 -- flg ) 12.6.1.1440 12.6.1.1440
F0=fzeqfloat( f1 -- flg ) 12.6.1.1450 12.6.1.1450
F1-fonemfloat( f1 -- f2 ) subtract one
F1+fonepfloat( f1 -- f2 ) add one
F2/f2byfloat( f1 f2 -- f3 ) div by two
F2*f2mulfloat( f1 f2 -- f3 ) mul by two
F2DUPf2dupfloat( f1 f2 -- f1 f2 f1 f2 )
FABSfabsffloat( f1 -- f2 ) 12.6.2.1474 12.6.2.1474
FACOSfacosfloat( f1 -- f2 ) 12.6.2.1476 12.6.2.1476
FACOSHfacoshfloat( f1 -- f2 ) area cosh, 12.6.2.1477 12.6.2.1477
FALOGfalogffloat( f1 -- f2 ) 12.6.2.1484 12.6.2.1484
FASINfasinfloat( f1 -- f2 ) 12.6.2.1486 12.6.2.1486
FASINHfasinhfloat( f1 -- f2 ) area sinh, 12.6.2.1487 12.6.2.1487
FATANfatanfloat( f1 -- f2 ) 12.6.2.1488 12.6.2.1488
FATAN2fatan2float( f1 f2 -- f3 ) 12.6.2.1489 12.6.2.1489
FATANHfatanhfloat( f1 -- f2 ) area tanh, 12.6.2.1491 12.6.2.1491
FCONSTANTfconsfloatccc( f1 -- ) 12.6.1.1492 12.6.1.1492
FCOSfcosffloat( f1 -- f2 ) 12.6.2.1493 12.6.2.1493
FCOSHfcoshfloat( f1 -- f2 ) area tanh, 12.6.2.1494 12.6.2.1494
F>Dftodfloat( f1 -- d2 ) 12.6.1.1470 12.6.1.1470
FDEPTHfdepthfloat( -- n ) 12.6.1.1497 12.6.1.1497
F>DFftodffloat( f1 -- df2 ) convert float to double size
FDROPfdropfloat( f1 -- ) 12.6.1.1500 12.6.1.1500
FDUPfdupfloat( f1 -- f1 f1 ) 12.6.1.1510 12.6.1.1510
FE.fedotfloatn.i. - 12.6.2.1513 12.6.2.1513
FEXPfexpfloat( f1 -- f2 ) 12.6.2.1515 12.6.2.1515
FEXPM1fexpm1float( f1 -- f2 ) 12.6.2.1516 12.6.2.1516
F>IEEEf2ieeefloat( f1 -- d2 ) ranum to ieee-754, 12.6.1.1470 12.6.1.1470
FLITERALfliteralfloat( f1 -- ) 12.6.1.1552 12.6.1.1552
FLNflnfloat( f1 -- f2 ) 12.6.2.1553 12.6.2.1553
FLNP1flnp1float( f1 -- f2 ) 12.6.2.1554 12.6.2.1554
>FLOATtofloatfloat( p u -- f1 ) 12.6.1.0558 12.6.1.0558
float-opfloatopfloat{FLOAT}-subvoc w. un-praefixed names
FLOGflogfloat( f1 -- f2 ) 12.6.2.1557 12.6.2.1557
FLOORfloorfloat( f1 -- dn ) 12.6.1.1558 12.6.1.1558
FMAXfmaxfloat( f1 f2 -- f3 ) 12.6.1.1562 12.6.1.1562
FMINfminfloat( f1 f2 -- f3 ) 12.6.1.1565 12.6.1.1565
FNEGATEfnegatefloat( f1 -- f2 ) 12.6.1.1567 12.6.1.1567
FORforfloat( f1 -- ) begin FOR .. NEXT loop, set range
FOVERfoverfloat( f1 f2 -- f1 f2 f1 ) 12.6.1.1600 12.6.1.1600
FPICKfpickfloat( f1... n1 -- f1 ) +/- pick float
FRANDOMfrandomfloat( f1 -- f2 ) random number in range [0,f1)
FROMfromfloat( f1 -- ) set FOR-loop start
+FROMpfromfloat( f1 -- ) modify FOR-loop start & limit by disp f1
FROTfrotfloat( f1 f2 f3 -- f2 f3 f1 ) 12.6.1.1610 12.6.1.1610
FROUNDfroundfloat( f1 -- f2 ) nearest int, 12.6.1.1612 12.6.1.1612
FS.fsdotfloatn.i. - 12.6.2.1613 12.6.2.1613
FSINfsinffloat( f1 -- f2 ) 12.6.2.1614 12.6.2.1614
FSINCOSfscfloat( f1 -- f2 f3 ) 12.6.2.1616 12.6.2.1616
FSINHfsinhfloat( f1 -- f2 ) hyperbelsinus, 12.6.2.1617 12.6.2.1617
FSQRTfsqrtffloat( f1 -- f2 ) 12.6.2.1618 12.6.2.1618
FSWAPfswapfloat( f1 f2 -- f2 f1 ) 12.6.1.1620 12.6.1.1620
FTANftanfloat( f1 -- f2 ) 12.6.2.1625 12.6.2.1625
FTANHftanhfloat( f1 -- f2 ) hyperbeltangens, 12.6.2.1626 12.6.2.1626
FVARIABLEfvarifloatccc( -- p ) 12.6.1.1630 12.6.1.1630
IDXfidxfloat( -- f1 ) innermost FOR-loop index
!IDXsidxfloat( f1 -- ) store FOR-loop index
IEEE>Fieee2ffloat( f1 -- d2 ) ieee-754 to ranum, 12.6.1.1470 12.6.1.1470
INCfstepfloat( -- f1 ) FOR-loop increment
!INCsincfloat( f1 -- ) store FOR-loop increment
LIMflimfloat( -- f1 ) FOR-loop limit
NEXTnextfloat( -- ) terminate a FOR-loop
NXnxfloat( n -- f1 ) n-th level FOR-loop index
@NXfnxfloat( -- p ) ptr to n-th level FOR-loop ctrl data
PRECISIONfprecfloat( -- n ) -re- {fplaces} 12.6.2.2035 12.6.2.2035
RAD>DEGrad2degfloat( f1 -- f2 ) convert radians to sexagesimal degrees
REPRESENTfrepresentfloat( f1 p u -- n1 flg1 flg2 ) 12.6.1.2143 12.6.1.2143
SET-PRECISIONsprecfloat( n -- ) 12.6.2.2200 12.6.2.2200 - { to #fplaces }
SF!sfstorefloat( f1 p -- ) 12.6.2.2202 12.6.2.2202
SF@sffetchfloat( p -- f1 ) 12.6.2.2203 12.6.2.2203
STEPstepfloat( f1 -- ) set FOR-loop increment
^fpowfloatop( f1 f2 -- f3 ) f1 to the power of f2
~faeqfloatop( f1 f2 f3 -- flg ) 12.6.2.1640 12.6.2.1640 (-?-)
<fltfloatop( f1 f2 -- flg ) 12.6.1.1460 12.6.1.1460
-fsubffloatop( f1 f2 -- f3 ) 12.6.1.1425 12.6.1.1425
!fstorefloatop( f1 p -- ) 12.6.1.1400 12.6.1.1400
/fbyfloatop( f1 f2 -- f3 ) 12.6.1.1430 12.6.1.1430
.fdotfloatop( f1 -- ) 12.6.2.1427 12.6.2.1427
@ffetchfloatop( p -- f1 ) 12.6.1.1472 12.6.1.1472
*fmulffloatop( f1 f2 -- f3 ) 12.6.1.1410 12.6.1.1410
*/dvmulbyfloatop( f1 f2 f3 -- f4 ) mul f1 by f2 div by f3
**fpowfloatop( f1 f2 -- f3 ) 12.6.2.1415 12.6.2.1415
%dvvhfloatop( f1 f2 -- f3 ) per 100
+fplusfloatop( f1 f2 -- f3 ) 12.6.1.1420 12.6.1.1420
0<fzltfloatop( f1 -- flg ) 12.6.1.1440 12.6.1.1440
0=fzeqfloatop( f1 -- flg ) 12.6.1.1450 12.6.1.1450
1-fonemfloatop( f1 -- f2 ) subtract one
1+fonepfloatop( f1 -- f2 ) add one
2!dfstorefloatop( f1 p -- ) 12.6.2.1203 12.6.2.1203
2/f2byfloatop( f1 f2 -- f3 ) div by two
2@dffetchfloatop( p -- df1 ) 12.6.2.1204 12.6.2.1204
2*f2mulfloatop( f1 f2 -- f3 ) mul by two
2OVERdfoverfloatop( df1 df2 -- df1 df2 df1 )
2PICKdfpickfloatop( df1... n1 -- df1 ) pick double float
2ROTdfrotfloatop( df1 df2 df3 -- df2 df3 df1 )
2SWAPdfswapfloatop( df1 df2 -- df2 df1 )
ABSfabsffloatop( f1 -- f2 ) 12.6.2.1474 12.6.2.1474
ACOSfacosfloatop( f1 -- f2 ) 12.6.2.1476 12.6.2.1476
ACOSHfacoshfloatop( f1 -- f2 ) area cosh, 12.6.2.1477 12.6.2.1477
ALOGfalogffloatop( f1 -- f2 ) 12.6.2.1484 12.6.2.1484
ASINfasinfloatop( f1 -- f2 ) 12.6.2.1486 12.6.2.1486
ASINHfasinhfloatop( f1 -- f2 ) area sinh, 12.6.2.1487 12.6.2.1487
ATANfatanfloatop( f1 -- f2 ) 12.6.2.1488 12.6.2.1488
ATAN2fatan2floatop( f1 f2 -- f3 ) 12.6.2.1489 12.6.2.1489
ATANHfatanhfloatop( f1 -- f2 ) area tanh, 12.6.2.1491 12.6.2.1491
CONSTANTfconsfloatopccc( f1 -- ) 12.6.1.1492 12.6.1.1492
COSfcosffloatop( f1 -- f2 ) 12.6.2.1493 12.6.2.1493
COSHfcoshfloatop( f1 -- f2 ) area tanh, 12.6.2.1494 12.6.2.1494
D.dfdotffloatop( df1 -- ) print double float (quad ranum)
D2/qv2divfloatop( df1 df2 -- df3 ) div by two
D2*qv2mulfloatop( df1 -- df2 ) multiply by 2
DEPTHfdepthfloatop( -- n ) 12.6.1.1497 12.6.1.1497
DROPfdropfloatop( f1 -- ) 12.6.1.1500 12.6.1.1500
D>Sdftoffloatop( df1 -- f2 ) 12.6.1.1130 12.6.1.1130
DUPfdupfloatop( f1 -- f1 f1 ) 12.6.1.1510 12.6.1.1510
EXPfexpfloatop( f1 -- f2 ) 12.6.2.1515 12.6.2.1515
EXPM1fexpm1floatop( f1 -- f2 ) 12.6.2.1516 12.6.2.1516
LITERALfliteralfloatop( f1 -- ) 12.6.1.1552 12.6.1.1552
LNflnfloatop( f1 -- f2 ) 12.6.2.1553 12.6.2.1553
LNP1flnp1floatop( f1 -- f2 ) 12.6.2.1554 12.6.2.1554
LOGflogfloatop( f1 -- f2 ) 115 115 |12.6.2.1557
MAXfmaxfloatop( f1 f2 -- f3 ) 12.6.1.1562 12.6.1.1562
MINfminfloatop( f1 f2 -- f3 ) 12.6.1.1565 12.6.1.1565
NEGATEfnegatefloatop( f1 -- f2 ) 12.6.1.1567 12.6.1.1567
OVERfoverfloatop( f1 f2 -- f1 f2 f1 ) 12.6.1.1600 12.6.1.1600
PICKfpickfloatop( f1... n1 -- f1 ) +/- pick float
RANDOMfrandomfloatop( f1 -- f2 ) random number in range [0,f1)
ROTfrotfloatop( f1 f2 f3 -- f2 f3 f1 ) 12.6.1.1610 12.6.1.1610
ROUNDdvfroundfloatop( f1 -- f2 ) round to #fround digits after dp
S>Dftodffloatop( f1 -- df2 ) convert float to double size
SINfsinffloatop( f1 -- f2 ) 12.6.2.1614 12.6.2.1614
SINCOSfscfloatop( f1 -- f2 f3 ) 12.6.2.1616 12.6.2.1616
SINHfsinhfloatop( f1 -- f2 ) hyperbelsinus, 12.6.2.1617 12.6.2.1617
SQRTfsqrtffloatop( f1 -- f2 ) 12.6.2.1618 12.6.2.1618
SWAPfswapfloatop( f1 f2 -- f2 f1 ) 12.6.1.1620 12.6.1.1620
TANftanfloatop( f1 -- f2 ) 12.6.2.1625 12.6.2.1625
TANHftanhfloatop( f1 -- f2 ) hyperbeltangens, 12.6.2.1626 12.6.2.1626
VARIABLEfvarifloatopccc( -- p ) 12.6.1.1630 12.6.1.1630
^powforth( n1 n2 -- d ) double, sing to the power of sing
<lessforth( n1 n2 -- f ) tf if @tos smaller than @nos
<#ltsharpforthbegin number to stg conversion
=equalforth( n1 n2 -- f ) tf if @tos = @nos
=:valdefforthstore integer to known or create new {value}
=/=nequalforth( n1 n2 -- f ) ff if @tos = @nos
>greaterforth( n1 n2 -- f ) tf if @tos greater than @nos
><xgbforth( n1 -- n2 ) swap l.s. two bytes of a sing
>|<w2bforth( n1 -- n2 ) extract l.s. two bytes of a sing
>||<d2wforth( n1 -- n2 n3 ) extract the two halves of a sing
>/nltforth( n1 n2 -- f ) tf if @tos greater than @nos
-ssubforth( n1 n2 -- n3 ) subtract sings
,commaforthcompile sing (4 bytes) to data-space
;semiforthterminate colon defn, clr locals, check
:colonforthbegin a 'colon definition'
!storeforth( n p -- ) sto sing to memory
!-storemforth( p1 -- p2 n ) pre-decrement & store dword
!!xstoforth( p1 p2 -- ) xchange cells in memory
!+storepforth( n p1 -- p2 ) store dword & post-increment
?quesforth( p - ) display numeric content of cell at ptr
/byforth( n1 n2 -- n3q ) div sings, leave quot
.dotforth( n -- ) display signed sing
."dotquoteforthdisplay string
'tickforthfetch xec token ix by name as a literal
"qteforthcpl stg, ret ptr to stg
[-->]bnxldbforthdft for {load} or, for immediate xec
]rbracforthenter cpl state, inc nesting level by one
{loccbforthcpl locals list, un-/initiated & comment
@fetchforth( p -- n ) fetch cell ("dword") from memory
@-fetchmforth( p1 -- p2 n ) nos=tos-4,tos=@kref(nos)
@!fstoforth( p1 p2 -- ) copy cell from/to memory
@+fetchpforth( p1 -- p2 n ) nos=tos+4,tos=@kref(tos)
$.hexdotforth( u -- ) sedecimal display unsigned sing
*smulforth( n1 n2 -- n3 ) mul sings
*/mulbyforth( n1 n2 n3 -- n5q ) n1 / n2 * n3, qot n4
&.octdotforth( u -- ) octal display unsigned sing
#sharpforthextract l.s. digit char from a double
#>sharpgtforthterminate number to stg conversion
#.decdotforth( u -- ) decimal display unsigned sing
%.bindotforth( u -- ) binary display unsigned sing
+plusforth( n1 n2 -- n3 ) add sings
+-spmforth( n1 n2 -- n3 ) apply sign of sing @tos to sing
+!plstoforth( n p -- ) add sing to cell in memory
-0mzeroforthcons $80000000
-0=mzeqforthtf if only sign-bit set
-0.dmzeroforthdcons "-ve zero", only sign-bit set
?0=zeqqforth( n -- n f ) tf if n = 0
@0=zeqfforth@ 0= ; tf if cell @ptr = zero
0<zlessforth( n -- f ) tf if -ve sing
0=zeqforth( n -- f ) tf if zero item, flag inversion
0=/=zneqforth( n -- f ) tf if non-zero sing
0>zgreatforth( n -- f ) tf if @tos > 0
0.dzeroforthdcons zero
\<ngtforth( n1 n2 -- f ) tf if @tos smaller than @nos
0dropzdropforth-dup drop ; discard zero cell @tos
-0exitdzexitforthif ff leave current word
0maxzmaxforth0 max ; not less than 0
-1.dmoneforthdcons -1
(1-)b1mbforth( p -- ) sub 1 from cell at ptr
(1+)b1pbforth( p -- ) add 1 to cell at ptr
1-sub1forthdec sing by one
1,cpl1forthcompile byte to c-here
1+add1forthinc sing by one
10*mul10forthmul sing by ten
16*mul16forthmul sing by sixteen
16/moddiv16mforthdiv/mod sing by sixteen
1absabs1forthone-s complement if sing -ve
1/strings1stringforthadjust stg parameters by 1
2^pow2forth( n1 -- d1 ) 2^n sing -> double
2-sub2forthdec sing by two
2,cpl2forthcompile l.s. half sing (2 bytes) to c-here
2!twostoforth( d p -- ) sto double to mem
2!!twoxstoforth( p1 p2 -- ) xchange doubles in memory
2/div2forthdiv sing by two
2@twofetchforth( p -- d ) fetch double
2@!twofstoforth( p1 p2 -- ) copy double from/to memory
2*mul2forthmul sing by two
2+add2forthinc sing by two
2+!twoplstoforth( d p -- ) add double to double in memory
2andand2forth( d1 d2 -- d3 ) bitwise AND doubles
2constanttwoconsforthdefine non-alterable double constant
2dropdrop2forth( d -- ) drop two cells
2dropddropd2forth( d1 d2 -- d1 d1 ) ; 2drop 2dup
2dupdup2forth( d -- d d ) duplicate double
2integerinteger2forthimmediately compiled double cons
2invertdnotforth( d1 -- d2 ) bitwise complement a double
2literaldliteralforthcpl double literal
2lshiftdlshiftforth( d1 n -- d2 ) shift left a double
2oror2forth( d1 d2 -- d3 ) bitwise OR doubles
2oswaposwap2forth( d1 d2 -- d1 d1 d2 ) ; 2over 2swap
2overover2forth( d1 d2 -- d1 d2 d1 ) copy double @nos to tos
2pickpick2forth( .dd. n -- .dd. dn ) pick double
2-pickmpick2forth( dn ... d2 d1 m -- dn..d1..d2 ) ; 2store into stack
2rr2forth(R d -- d )( -- d ) double from return-stack
2>rtor2forth( n1 n2 -- )(R -- n2 n1 ) push double to return-stack
2r>rfrom2forth(R d -- )( -- d ) pop double from return-stack
2r>>2rr2xchgforth( d1 -- d2 )(R d2 -- d1 ) ; 2r> 2swap 2>r
2rdroprdrop2forth(R dn -- ) ; 2r> 2drop
2rollroll2forth( .dd. n -- .. dn ) roll doubles
2rotrot2forth( d1 d2 d3 -- d2 d3 d1 ) roll by 2
2-rotmrot2forth( d1 d2 d3 -- d3 d1 d2 ) ; 2rot 2rot
2rotdrotd2forth( d1 d2 d3 -- d2 d3 ) ; 2rot 2drop
2rotsrots2forth( d1 d2 d3 -- d3 d2 d1 ) ; 2rot 2swap
2>rrtorr2forth( d -- )(R -- d ) copy double to return-stack
2rshiftdrshiftforth( d1 n -- d2 ) shift right a double
2rshiftadrshiftaforth( d1 n -- d2 ) sign preserving shift right a double
2rswaprswap2forth(R d1 d2 -- d2 d1 ) ; 2r> 2r> 2swap 2>r 2>r
2sdropsdrop2forth( d1 d2 -- d2 ) ; 2swap 2drop
2sdupsdup2forth( d1 d2 -- d2 d1 d1 ) ; 2swap 2dup
2soversover2forth( d1 d2 -- d2 d1 d2 ) ; 2swap 2over
2srotsrot2forth( d1 d2 d3 -- d3 d2 d1 ) ; 2swap 2rot
2swapswap2forth( d1 d2 -- d2 d1 ) exchange double @tos w/ @nos
2thirdthird2forth( d1 d2 d3 -- d1 d2 d3 d1 ) ; 2 2pick
2toto2forthstore to alterable double cons
2valuevalue2forthdouble alterable 'constant'
2variabletwovariforth(un)initiated double variable
2xorxor2forth( d1 d2 -- d3 ) bitwise XOR doubles
3*mul3forthmul sing by three
3dropdrop3forth( n1 n2 n3 -- ) ; 2drop drop
3dupdup3forth( d1 n1 -- d1 n1 d1 n1 ) ; dup 2over rot
4-sub4forthdec sing by four
4,cpl4forthcompile sing (4 bytes) to c-here
4!store4forth( q1 p -- ) sto quad to memory
4!!qxstoforth( p1 p2 -- ) xchange quads in memory
4/div4forthdiv sing by four
4@fetch4forth( p -- q1 ) fetch quad from memory
4*mul4forthmul sing by four
4+add4forthinc sing by four
4constantqconstantforthdefine non-alterable quad constant
4dropdrop4forth( q1 -- ) drop 4 cells
4dupdup4forth( q1 -- q1 q1 ) duplicate quad @tos
-4dupqdup4forth( q1 -- q1 q1 | q0 ) 4dup @tos if non-zero
4integerinteger4forthimmediately compiled quad cons
4literalqliteralforthcpl quad literal
4notnot4forth( q1 -- q2 ) bitwise complement top 4 cells
4overover4forth( q1 q2 -- q1 q2 q1 ) push quad @nos to tos
4pickpick4forth( qx..qn..q0 n -- qx..qn..q0 qn) +/- pick quad
4rr4forth( -- q1 )(R q1 -- q1 ) copy quad from RS to DS
4>rtor4forth( -- q1 )(R q1 -- ) quad from return-stack
4r>rfrom4forth( q1 -- )(R -- q1 ) quad to RS
4rdroprdrop4forth(R q1 -- ) ; drop four cells from RS
4rollroll4forth( qn .. q1 n -- .. q1 qn | q1 qn .. ) +/- roll quads
4rotrot4forth( q1 q2 q3 -- q2 q3 q1 ) rot quads
4-rotmrot4forth( q1 q2 q3 -- q3 q1 q2 ) reverse rot quad
4rotdrot4dforth( q1 q2 q3 -- q2 q3 ) rot drop quads
4sdropsdrop4forth( q1 q2 -- q2 ) ; 4swap 4drop
4soversover4forth( q1 q2 -- q2 q1 q2 ) ; 4swap 4over
4swapswap4forth( q1 q2 -- q2 q1 ) exchange top two quads
4th>absfth2absforthptr to address
4variableqvariforth(un)initiated quad variable
5*mul5forthmul sing by five
6*mul6forthmul sing by six
7*mul7forthmul sing by seven
8-sub8forthdec sing by eight
8/div8forthdiv sing by eight
8*mul8forthmul sing by eight
8+add8forthinc sing by eight
8dropdrop8forth( o1 -- ) drop top 8 cells, quad ranum
8dupdup8forth( o1 -- o1 o1 ) dup top 8 cells item, quad ranum
8overover8forth( o1 o2 -- o1 o2 o1 ) over 8 cells item, quad ranum
8pickpick8forth( .. o1 n -- .. o1 on | .. ) +/- pick 8 cells items
8rollroll8forth( on .. o1 n -- .. o1 on | o1 on .. ) roll by 8cells
8sdropsdrop8forth( o1 o2 -- o2 ) drop @nos 8-cells item
8soversover8forth( o1 o2 -- o1 o2 o1 ) swap over quad ranums
8swapswap8forth( o1 o2 -- o2 o1 ) swap 8-cells items
9*mul9forthmul sing by nine
a!astoreforth( n a -- ) sto cell to true addr
a@afetchforth( a -- n ) fetch cell from true addr
a-baseabaseforthdetermine stg to number conversion radix
abort"abtqteforthif tf abort and prnt message
abscabsforthtwo-s cpl if sing -ve, '-0' -> 0
abs>4thabs2fthforthaddress to ptr
acceptvacceptforth( p u -- u' ) input from stdin, edittable if terminal
againagainforthterminate endless loop after BEGIN
aheadaheadforthprepare forward branch disp
alarmcalarmforthsend alarm signal after given time in seconds
alignxalignforthalign data-ptr up to next multiple of 4
alignedalignedforthalign sing up to next multiple of 4
allocateallocatemforthallocate data-space, extends into .bss section
allotallotforthreserve space in data-memory
andaandforth( n1 n2 -- n3 ) bitwise AND sings
and!andsforth( n p -- ) and to cell in memory
andxandxforth( n1 n2 n3 -- n4 ) n1 n2 AND n3 XOR
ansansforthforth-voc, words specific to ANS-4th
asciicharforthfetch character value literal
associative:assoccforthcpl an {associative:} list
at-xyatxyforthhor and vert. cursor posn by chars
b,bcommaforthcompile l.s. byte of sing to data-space
b!bstoreforth( c p -- ) sto l.s.byte of sing to memory
b!-bstoremforth( p1 -- p2 c ) pre-decrement & store byte
b!+bstorepforth( c p1 -- p2 ) store byte & post-increment
b.bdotforth( n1 n2 -- ) display n1 at radix n2
b@bfetchforth( p -- c ) fetch byte from memory
b@+bfetchpforth( p1 -- p2 c ) nos=tos+1,tos=c@kref(tos)
backbackforthcpl backward disp to {here}
basebaseforthnumber conversion radix
base!basesforthsto to {base}
base@basefforthfetch {base} base value
b/bufbbybufforthbytes per buffer-block (1K)
b->db2dnforthcombine 8 cells ls.bytes to a double
beepbeepforthcontrollable noise..
beginbeginforthbegin a repeat/until/again structure
belbelforthnoise..
bignumbignumforthforth-voc, unlimited praecision integers
binbinfforthuseless, but ANS required file open modifier
binarybinaryforthstore 2 to base
blbblforthcons 32
blankblanksforth( p +u -- ) fill memory w. blanks
+blankspblanksforthright align a string by blanks
blkblkforthscreenfile block number -n.i.-
blk@blkfetchforthfetch {blk}
blkfileblkfileforthforth-voc, block-file special words
blockblockforthxec.vec
bl.rbldotrforth( p n1 n2 -- p n1 ) right algn'd fill w/ leading <bl>s
boundsboundsforth( n1 n2 -- n1+n2 n1 ) ; over + swap
bsbsforthbackspace, backup cursor by one column
b->sb2snforthcombine 4 cells ls.bytes to a sing
bsfbsffforthbit scan forward
bsfmbsfmforth{bsf} memory
bsfrbsfrforth{bsf} register
bslicebsliceforthstring slice by byte positions
bsrbsrfforthbit scan reverse
bsrmbsrmforth{bsr} memory
bsrrbsrrforth{bsr} register
bswapbbswapforthswap bytes of a dword
bufferbufferforthxec.vec
c,ccommaforthcompile char (1 byte) to data-space
c!cstoreforth( c p -- ) sto char to memory
c!!cxstoforth( p1 p2 -- ) xchange bytes in memory
c!+cstorepforth( c p -- ) store char & post-increment
c"cqteforthptr to stg
c@cfetchforth( p -- c ) fetch char from memory
c@!cfstoforth( p1 p2 -- ) copy byte from/to memory
c@+cfetchpforth( p1 -- p2 c ) nos=tos+1,tos=c@kref(tos)
c+!cplstoforth( c p -- ) add byte to byte in memory
c0c0forthptr to base of code-space
caligncalignforthalign code-ptr up to next multiple of 4
call-by-disp?cbdispqforthquery cpl mode
c-allotcallotforthcode-space & module non-modifyable data
can?canqforthtest input for <can> sequence
caps?capsqforthtf if text interpreting letter-case dependently
?caseqcaseforthenter true part if @tos = @nos
#casencaseforthcase-list index by which a word was called
case:casecoforthcpl a {case:} list
#casesncasesforthitems in a {case:}, {range:}, {associative:} list
cc4cc!cc4thsforthsto ctrl char xec vector
cc4cc@cc4thfforthfetch ctrl char xec vector
cc4thcc4thforthxec vectored control character 4th actions
cellpfourforthcount of bytes per cell
cell-sub4forthdec sing by no. of bytes per cell (4)
cell+add4forthinc sing by no. of bytes per cell (4)
cfaligncfalignforthalign code-ptr up to next multiple of 8
c-fencecfenceforthptr to fenced code-space
channelchannelforthid and i/o-flags
char-sub1forthdec sing by bytes per char (1)
char+add1forthinc sing by bytes per char (1)
charsnoopforthmul sing by bytes per char (1)
c-herechereforthptr to available code-space
ch-namechnamefortha channel's file name
close-fileclosefforthclose a file
c>lowerc2lowerforthconvert char to lower-case
clsclsforthclear console screen & home
clscclscforthclear console screen
cmovexcmoveforth( p1 p2 +u ) copy memory contents w/ ascending ptrs
cmove>cmovegtforth( p1 p2 +u ) copy memory contents w/ descending ptrs
cnaligncnalignforthalign code-ptr up to next multiple supplied sing
codecodeforthbegin lo-level word -useless w/ lib4th-
(code)pcodepforthterminate colon defn, continue lo-level
?compqcompforthabort if not in permanently compiling state
comparecompareforthcompare two stgs
compilecompileforthcompile next word
-compilemcompileforthfetch name, xec if interpreting, else compile
-compile,mcompilecforthxec by index else compile
[compile]bcbforthsynonym {postpone}
compile,compilecforthcompile by supplied ix
cons?consqforthtf if channel is console
cons+conspforthdefine constant increment
constantconstantforthdefine non-alterable constant
contextcontextforth1st wordlist in search order
convertconvertaforthconvert stg to number - ANS-mode
copy-filecopyfforthdirectly copy by names one file to another
countccountforth( p1 -- p2 u ) ptr to 1st char and count
cpcpforthstorage of ptr into code-space
cplbcplbforthcomplement bit
.cpudotcpuforthdisplay cpu type
crcrforthsend <lf> to stdout
-crdcrforth( f -- ) if tf send <lf> to stdout
?crqcrforth<nl> if no space left in display line
createcreateforthbuild a 'variable'-type header
create-filecreafforthoverwriting open a file
c->sc2snforthl.s.byte to sing (cell)
cs-depthcsdepthforth( -- n ) cpl-stack depth, less count from <colon>
cs-dropcsdropforthdrop (double) item from compile-stack
csearchcsearchforthsearch by supplied char delimited stg
cslicecsliceforthstring slice by chars
cspcspforthcompiling state saved data-stack ptr
!cspscspforthstore sp to csp
?cspqcspforthabort if data-stack out of balance
cs-pickcspickforthpick (double) item from compile-stack
cs-rollcsrollforthroll double on compile-stack
cstgcstg4forthdefines a counted string value
c+stgcstgpsforthappend char to stg value
c-topctopforthptr to top of available code-space
c>upperc2upperforthconvert char to upper-case
currentcurrentforthcurrent defining vocabulary
c-xchgcxchgforth( p1 p2 +u -- ) xchange memory content
d<dlessforthtf if double @tos smaller than @nos
d=deqforthtf if double @tos and @nos equal
d=/=dneqforthtf if doubles not equal
d>dgreatforthtf if double @tos smaller than @nos
d-dsubforth( d1 d2 -- d3 ) subtract doubles
d/dbyforth( d1 d2 -- d3 ) d3=quot of div
d.ddotforthdisplay signed double
d*dmulforth( d1 d2 -- d3 ) d3=prod of mul
d+dplusforth( d1 d2 -- d3 ) add doubles
d+-dpmforth( d1 n -- d2 ) apply sign of sing to double @nos
d0d0forthptr to base of data-space
?d0=qdzeqforth( dn -- dn f ) tf if double @tos is zero
d0<dzlessforthtf if double @tos -ve
d0=dzeqforthtf if double @tos is zero
d0=/=dzneqforthff if double @tos is zero
d0>dzgtforthtf if double @tos -ve
(d1-)bd1mbforth( p -- ) sub 1 from double cell at ptr
(d1+)bd1pbforth( p -- ) add 1 to double cell at ptr
d1-donemforth( d1 -- d2 ) dec double by one
d1+donepforth( d1 -- d2 ) inc double by one
d1absd1absforth( d1 -- d2 ) bitwise one-s cpl doubles if -ve
d2-dtwomforth( d1 -- d2 ) dec double by two
d2/dtwobyforth( d1 -- d2 ) div double by two
d2*dmul2forth( d1 -- d2 ) mul double by two
d2+dtwopforth( d1 -- d2 ) inc double by two
d2dupd2dupforth( d -- d d d ) ; 2dup 2dup
d4-dfourmforth( d1 -- d2 ) dec double by four
d4/dfourbyforth( d1 -- d2 ) div double by four
d4*dmul4forth( d1 -- d2 ) mul double by four
d4+dfourpforth( d1 -- d2 ) inc double by four
d8-deightmforth( d1 -- d2 ) dec double by eight
d8/deightbyforth( d1 -- d2 ) div double by eight
d8*dmul8forth( d1 -- d2 ) mul double by eight
d8+deightpforth( d1 -- d2 ) inc double by eight
dabsdabsforth( d1 -- d2 ) two-s cpl doubles if -ve
datedate4forthsystem time in seconds
"datesdate4forthstg w. system date
dayday4forthday of system time
"daysday4forthstg w. day of system time
daystgdaystgforthconvert day no. to text
d->bd2bnforthextract 8 bytes from double
ddupddupforth( n -- n n n ) ; dup dup
decimaldecimalforthsto 10 to base
default-isdefaultisforthre-define a deferred word's default action
deferdeferforthstored true address or ix executing vari
?deferredqdferdforthabort if xt is not of a deferred word
deferred?dferdqforthtf if xt is of a deferred word
defineddefinedforthimmediate tf if name found
delete-filedeletfforthdelete (not erase) a file
depthdepthforth( -- n ) count of cells on data-stack
-depthmdepthforth( -- n ) cells free in data-stack
?depthqdepthforthabort if unsufficient data on stack
depth?depthqforthtf if sufficient data on stack
df/moddfbymforthfloored div doubles w/ remainder
dgcddgcdforth( d1 d2 -- d3 ) greatest common denominator, doubles
digitdigitforthconvert char to digit + flag
dliteraldliteralforthcpl double literal
dm*dmmulforth( d1 d2 -- d3 n ) mul doubles, leave 3-cells prod.
dmaxdmaxforth( d1 d2 -- d3 ) leave the greater of two doubles on tos
dmindminforth( d1 d2 -- d3 ) leave the smaller of two doubles on tos
dmoddmodforthdiv doubles, leave double rmd
d/moddbymforth( d1 d2 -- d3 ) d3=rmd of div
dnegatednegateforth( d1 -- d2 ) two-s complement of a double
dodoforthbegin counted loop
?doqdoforthenter DO-loop if start =/= limit
does>doesgtforthbegin runtime part of defining word
does@>fdoesgtforthbegin runtime part of defining word
dpdpforthptr to available data-space
#dppdovalforthfloating pt. fraction marker char, dft=","
dparitydparityforthff if odd no of set bits in a double
dpldplforthdecimal point location of just converted number
dpl@dplfetchforthfetch dpl
d->qd2qnforthdouble to quad
d.rddotrforthright aligned display signed double
dr0dr0cforthactivate 1st screenfile channel
dr1dr1cforthactivate 2nd screenfile channel
dropdropforth( n -- ) discard cell @tos
-dropmdropforthdup 0= -dup 2drop ; discard non-zero @tos
dropddropdforth( n1 n2 -- n1 n1 ) ; drop dup
d>sd2snforthdouble to sing
d->sd2snforthdouble to sing
dsgndsgnforth( dn -- f ) f=signum(dn)
dslbitsdslbitsforth( d1 -- d1 n ) no. of top zero-bits less 2
ds-pickdspickforthpick sing wrt saved data-stack
d-topdtopforthptr to top of available data-space
du<dulessforthtd if double @tos unsigned smaller than @nos
du>dugreatforthtd if double @tos unsigned smaller than @nos
dumpdumpforthdump memory at ptr
dupcdupforth( n -- n n ) duplicate @tos, { 0 pick }
-dupqdupforth( n | 0 -- n n | 0 ) dup @tos if non-zero
e\stgestgforthconvert escaped chars in stg
echo-offechofforthsuppress kbd input echo
echo-onechonforthenable kbd input echo
edlinedlinforth{accept}, after 1st <tab> edit text at buffer
edpl@edplfetchforthfetch optional num. input exponent value
ekeyekeyforthget input byte
?ekeyqekeyforth( -- c f ) tf if input byte available
ekey?ekeyqforthtest and get input byte and flag
ekey>asciekey2asciforthtf & char if code in 8bit ascii+ctrls range
ekey>charekey2charforthtf & char if code in range of printing chars
elseelseforthenter IF "false" alternative
else;elsesforthopt, subst. { .. exit else }
emitemitforthsend a char to stdout
emit?emitqforthtf if stdout can emit
emit-memitmforthmultiply send a char to stdout
emmsemmsfforthclr cpu mmx/fp state
emptyemptyforthforget all above fence
empty-buffersembufsforthclose scr-chan, make buffers available
encloseenclose4forthisolate a word from tib -?-
endifendifforthterminate IF/ELSE sequence
endif;endifsforthopt, subst. { ... exit endif }
enternterforthjump to after ENTRY in a BEGIN structure
-entermnterforthconditonally enter BEGIN structure at ENTRY
entryntryforthdestination after BEGIN from ENTER
#enumnenumforthcount of asciz stg in a slist
enum?enumqforthlist asciz stgs of enum-list
enum@enumfforthfind stg by item no. in list
enum#enumnforthfind no. of asciz stg in list
?eolqeolforthtf if display posn grater than window width
eraseeraseforth( p +u -- ) fill memory range w/ <nul> bytes
errnoernoforthcnv error name to number
errno?ernoqforthdisplay known error names
?errorqerrorforthabort if flag indicates an error
errstgerrsforthcnv err number to name
esc?escqforthtf if key <esc>, wait after <bl> until next
evaluateevaluateforthinterpret supplied string
?execqexecforthabort if not in execution of a word
executeexecuteforthexecute from uot index
-executedexecuteforthexecute from uot index if flg =/= 0
exitexitfforthleave hi-level word, resolve locals
-exitdexitforthif tf leave current word
expectexpectforthaccept max buffer size input, then terminate
f"fqteforthfname" w/ buffer at pad
f8dirf8dirforthpath to installed suppl. lib4th library files
factorialfactorialforth( u1 -- ud2 ) double factorial of u1, -1 < u1 < 21
falsezeroforthcons 0
fencefence4forthptr to fenced data-space
!fencestofenceforthstore current dictionary-ptrs to fence
fence!fencesforthstore @tos to fence-ptrs
fence@fencefforthset fence-values from supplied data
figfigforthforth-voc, words specific f.i.g.-style 4th
file-accessfaccessfforthby name test file access permissions
file>filef2fileforthdirectly copy between two files
file-positionfposfforth( n1 -- d2 er ) file-pointer by channel no.
file-sizefsizefforth( n1 -- n2 ) size of file by channel no.
fillfillforth( p +u n -- ) fill memory range w/ supplied byte
findfindforthfind by supplied ptr to name, 6.1.1550 6.1.1550
-finddfindforthfind a word's lfa by fetched name
[find]bfindbforthfind a word's lfa by stg(p,u)
fldufldforthuser vari in dump, else free
flt?fltqforth( -- n ) cells count if last num was a float
flushflushforthsave updated blocks
flush-fileflushfforthstore cached buffers back to file by channel no.
fm/modfmbymodforth( d1 n2 -- n3r n4q ) floored double by sing
[fname]bfnamebforthfind file in F8DIR & PATH, ret path+file-name
fname"fnmqteforthfind file in F8DIR & PATH, ret path+file-name
f-okfokforthfile access query modifier
fopenfopenfforthopen file by fetched name
forgetforgetforthforget name and all newer words
:forgetcolforgetforthdefine a word-specific forget-action
forget>forgetgtforthlink a word to {forket-lk} chain
forget,fgcommaforthlink a word to {forket-lk} chain
#fplacespdovalforthmax no. of {f.} fraction digits, dft=14
freefreemforthlink mem back to .bss section
gcdgcdforth( n1 n2 -- n3 ) greatest common denominator
h>ah2aforthconvert char to numeric value
herehereforthfetch dp, ptr to data-space
hexhexforthsto 16 to base
hldhldforthptr to bot. of used number conversion buffer
holdholdforthstore char to number conversion stg buffer
iiforth( -- n ) copy loop index to tos
id.iddotforthdisplay a word's name by lfa or ix
ififforthbegin an IF/ELSE sequence
i-fenceifenceforthfenced no. next to rsp u.o.t. index
>inxinforthparsed terminal input count
in@infetchforthfetch {in}
includeincludeforthinput from file by <bl>-enclosed name
include?includeqforth{include} if specified word not found
include"includeqteforthinput from file by <">-terminated name
includedincludedforthinput from file by supplied name
include-fileifileforth(re dpans94) input from file by channel no.
in-cons?inconsqforthtf if stdin is console
?inputqinputforth( ch -- c f ) key/char input query by channel
integerintegerforthimmediately compiled cons
interpretinterpretforthevaluate input stream
invertinvertforth( n1 -- n2 ) 1-s complement
io-conssioconsforthdetermine i/o mode
io-cons?ioconsqforthquery i/o mode
isisforthre-define a deferred word
is?isqforthdisplay xec word of a deferred word
is@isfforthdft and xec ix's by ix of a deferred word
is-caseiscaseforthccc( n1 n2 -- ) re-define item #n2 to n1
is-chanischanforthcopy {work}-channel description to supplied
is-defaultisdefaultforthreset deferred word to default action
jjforth( -- n ) copy 2nd order loop index to tos
kbdkbdcforthkeyboard input channel no.
kbd!kbdstoforthstore last kbd char back (if char-buf empty)
kbd'kbdtforthxec fetched name w. stdin from console
kbd-emitkbdemitforthsend a char to keyboard
kbd-keykbdkeyforthwait until char from keyboard
kbd?keykbdqkeyforthw/ zero timeout get a char from keyboard
kbd-typekbdtypeforthsend a string to keyboard channel
keykeyforthwait until character input
?keyqkeyforth( -- c f ) tf if char available
key!keystoforthstore last input char back (if char-buf empty)
key?keyqforthtf if input char available
l-allotlallotforthlocal data-space
l-andlandforth( n1 n2 -- f ) ; logic AND
lastlastuforthglobal last words nfa in dictionary
latestlatestforthlast words nfa in {current} voc.
lcase@lcasefforthstg comparison letter case dependency flg
LCASE@lcasefforthstg comparison letter case dependency flg
lc-dependlcdependforthstg comparison in letter case dependent mode
leavexleaveforthunconditionally leave DO-loop at next LOOP
lfa>idxlfa2idxforthuot index from lfa
lfa>nfalfa2nfaforthptr to name from lfa
lfa>pfalfa2pfaforthptr to execution ptr from lfa
lg2lg2forthnumerus of log at base 2 of item @tos
lg(base)lgbaseforthnumerus of log at @base of item @nos
liliforth( n1 -- n2 ) n1-st order loop limit to tos
listelistforthlist screen
literalliteralforthcpl single literal
loadpdodeferforthinput from current screenfile, -re- {using}
>loctolocforthde-/allocation
localslocalsforth( -- n ) available cells for local data
locals|locbarforthcpl initiated locals list
locals?localsqforthtf if suffient no. of local cells available
loc-ptrlocptrforthptr to local data-space { s0 @ loc-body @ - }
locref{locrefforthdefine locals referring list
loglogforthnumerus of log at base @tos of item @nos
loopxloopforthterminate a DO-loop sequence
+loopploopforthLOOP by explicit increment
l-orlorforth( n1 n2 -- f ) ; logic OR
lshiftlshiftforth( n1 n2 -- n3 ) shift left
@lshiftmlshiftforth( p n -- ) left shift cell in memory
m/mbyforth( d1 n2 -- n3r d4q )
m*mmulforth( n1 n2 -- d3 ) mul sings, leave double prod
m*/mmulbyforth( d1 n2 n3 -- d4q ) d1 * n2 / n3
m+mplusforth( d1 n2 -- d3 ) signed add sing to double @nos
m+!mplstoforth( n p -- ) sign extended add sing to double in memory
markmarkforthprepare back reference
markermarkerforthsave/restore current dictionary ptrs
maxmaxforth( n1 n2 -- f ) leave the greater of top two sings
md*mdmulforth( d1 d2 -- q ) mul doubles, leave quad prod.
messagemessageforthdisplay system message
message?messageqforthdisplay system message if arg =/= 0
minminforth( n1 n2 -- f ) leave the smaller of top two sings
m/modmbymforth( d1 n2 -- n3r n4q ) vectored sm/rem(dft) or fm/mod
modmodforth( n1 n2 -- n3r ) div sings, leave rmd
/modbymodforth( n1 n2 -- n3r n4q ) div sings, leave quot & rmd
*/modmulbymforth( n1 n2 n3 -- n4r n5q ) n1 / n2 * n3, rmd n4 & qot n5
movemoveforth( p1 p2 +u ) copy non-overwriting
>move<movexforth( p1 p2 +u -- ) copy reversed bytes order
m>rmtorforthmem bytes to return-stack
msmsforthhalt caller for given time in milliseconds
m>smtosforthmem bytes to data-stack
msgstgmsgstgforthfetch system message stg
nalignednalignedforthalign sing up to next multiple of supplied sing
nandnandforthbinary AND 2 groups of cells
ndropndropforthdrop n cells
ndupndupforthdup n cells
negatenegateforth( n1 -- n2 ) negate sing
new-channewchanforthget next free channel no.
nfa>lfanfa2lfaforthptr to linkfield from nfa
niniforth( n1 -- n2 ) n1-st order loop index to tos
:nonamenonameforthbegin a header-less hi-level word
non-mmxnonmmxforthforth-voc, non-mmx substitutes
nornorforthbinary OR 2 groups of cells
notinvertforth( n1 -- n2 ) flag inversion, bitwise invert, cpu opr
n>rntorforthpush data-stack cells to return-stack
nr>nrfromforthpop return-stack cells to data-stack
nr@nrfetchforthcopy return-stack cells to data-stack
nswapnswapforthswap blocks of n cells
?nullqnullforthabort-14 if 4th ptr is zero true address
numbernumberforthvectored stg to double conversion
>numbertonumberforthconvert stg to number till non-valid char
[number]abnumberbforthANS mode stg to number conversion
nxornxorforthbinary XOR 2 groups of cells
o-crodcrforth<lf> if stdout is console
octaloctalforthsto 8 to base
offoffforthsto 0 to ptr
ononforthsto -1 to ptr
open-fileopenfforthopen a file by supplied name
oroorforth( n1 n2 -- n3 ) bitwise OR sings
or!orsforth( n p -- ) or to cell in memory
oswaposwapforth( n1 n2 -- n1 n1 n2 ) ; over swap
outnoutforthcount of bytes sent after latest <eol>
out-cons?outconsqforthtf if stdout is console
overoverforth( n1 n2 -- n1 n2 n1 ) copy @nos to tos
over-overmforthover -
over+overpforthover +
packpackforthbyte to packed nib
padpadforthptr to tmp. buffer in data-space
pad2pad2forthptr to tmp. string-buffer in data-space
pad-sizepadsizeforthsize of tmp. buffers in data-space
pageffforthff
?pairsqpairsforthabort if stacked compile-flags dont match
parityparityforthff if odd no of set bits in a sing
parseparseforthisolate input field by (trailing) delimiter
parsecparsecforthparse from supplied string
pathepathforthPATH env. vari at prog startup time
performperformforthexecute from lfa
pickpickforth( .xx. n -- .xx. xn ) fetch cell wrt tos
-pickmpickforth( nn ... n2 n1 m -- nn..n1..n2 ) ; store into stack
placeplaceforth( p1 +u1 p2 -- ) store stg to supplied buffer
+placepplaceforth( p1 n p2 -- ) pre-/append stg in memory
place-sizeplacesizeforth( -- n ) max. stg size for -re- {place}, {+place}
pop-iopopioforthrestore i/o from tor
pow2?pow2qforthtf if item is a power of 2
printprintforthdisplay stg, whether counted or <nul> terminated
printing?printingqforthtf if entire stg is printing chars
?progqprogforthabort if ptr not in program or kernel space
push-iopushioforthsave i/o to tor, assign local tib
q<qlessforth( q1 -- f ) tf if quad @tos less than @nos
q=qeqforth( q1 q2 -- f ) tf if top two quads equal
q-qsubforth( q1 q2 -- q3 ) subtract quad numbers
q/qbyforth( q1 q2 -- q3q ) quot of quad div
q.qdotforthsigned display a quad
q*qmulforth( q1 q2 -- o3 ) signed mul quad by quad to 8 cells prod
q#qsharpforthextract l.s. digit from a quad
q#>qsharpgtforthterminate quad to stg conversion
q+qplusforth( q1 q2 -- q3 ) add quad numbers
q+-qpmforth( q1 n2 -- q3 ) apply sign of sing n1 to quad
?q0=qqzeqforth( q1 -- q1 f ) non-destructive test, tf if quad = zero
q0<qzlessforth( q1 -- f ) tf if quad -ve
q0=qzeqforth( q1 -- f ) tf if quad is zero
q0>qzgreatforth( q1 -- f ) tf if quad greater than zero
q1-qonemforth( q1 -- q2 ) decrement quad by one
q1+qonepforth( q1 -- q2 ) increment quad by one
q1absq1absforth( q1 -- q2 ) one-s complement if quad -ve
q2/qdiv2forth( q1 -- q2 ) signed 'round near zero' div quad by 2
q2*qmul2forth( q1 -- q2 ) mul quad by 2
qabsqabsforth( q1 -- q2 ) two-s complement if quad -ve
qdfm/modqdfmbymforth( q1 d2 -- d3r d4q ) floored q by d, ret doubles
qfm/modqfmbymforth( q1 d2 -- d3r q4q ) floored q by d, ret quad,double
qf/modqfbymforth( q1 q2 -- q3r q4q ) floored div q/q, ret q,q
qgcdqgcdforth( q1 q2 -- q3 ) greatest common denominator
qlshiftqlshiftforth( q1 n2 -- q3 ) shift quad left
qmodqmodforth( q1 q2 -- q3r ) rmd of quad div
q/modqbymforth( q1 q2 -- q3r q4q ) quot, rmd of quad div
qnegateqnegateforth( q1 -- q2 ) negate quad
q.rqdotrforth( q1 n2 -- ) signed display a quad right aligned
qrshiftqrshiftforth( q1 n2 -- q3 ) unsigned shift quad right
q#sqsharpsforthconvert quad to chars in {hld} buffer
qsgnqsgnforth( q1 -- n2 ) sing sign value of a quad
qslbitsqslbitsforth( q1 -- q1 n ) no. of top zero-bits less 2
qsm+qsmplusforth( q1 n2 -- n3 ) signed add sing to quad
qsqrtqsqrtforth( q1 -- q2 n3 ) quad square root of quad, sing 'j'-flag
qu<qulessforth( q1 -- f ) tf if unsigned quad @tos smaller than @nos
qu>qugreatforth( q1 -- f ) tf if unsigned quad @tos greater than @nos
queryqueryforth{accept} until <lf>
rrforth( -- n )(R n -- n ) push @tor to @tos
>rtorforth( n -- ) push sing to return-stack
;rsemirforth-re- {;} with return address adjustmt
:rcolonrforth-re- codespace adjustmt for safe return
.rdotrforth( n1 n2 -- ) right aligned display signed sing n1
r>rfromforth( -- n )(R n -- ) pop from ret-stack to tos
r@rforth( -- n )(R n -- n ) push @tor to @tos (ans word)
r+!rpsforth( n -- )(R n2 -- n3 ) add to @RS
r0r0forthptr to return-stack bottom
range:rangecforthcpl a {range:} list
rdroprdropforth(R n -- ) ; r> drop
read-charreadcharforthread a char from channel
read-filereadfforthread file until buffer full or <eof>
read-linereadlforthread file until <nl> or buffer full or <eof>
readmcreadmcforth( p u u2 -- p' u' p1 u1 ) u2 chars(=bytes) from mem
readmlreadmlforth( p u -- p' u' p1 u1 ) next line from mem
recurserecurseforthcall the caller
refillrefillforthfill tib from input stream until <eof>
rename-filerenamfforthassign new name to a file by names
repeatrepeatforthterminate BEGIN/WHILE, loop back to BEGIN
replacereplaceforthreplace text section in a string
reposition-filereposnfforthset file ptr to supplied posn
resbresb4forthreset (clear) bit
resizeresizemforthalloc/link back, w/o loss of data (as possible)
?resizeqresizemforthallocate if required for -re- {allot}
resize-fileresizefforthtruncate file at supplied posn
>resolvetoresolveforthresolve forward branch
restore-inputrestoreinputforthrestore saved input
r>mrtomforthreturn-stack bytes to mem
r/orbyofforth( -- n ) file open mode modifier
r-okrokforth( -- n ) file access query modifier
rollrollforth( .xx. n -- .. xn ) roll cells
rotrotforth( n1 n2 n3 -- n2 n3 n1 ) 2 roll
-rotmrotforth( n1 n2 n3 -- n3 n2 n1 ) reverse rot, { -2 roll }
rotdrotdforth( n1 n2 n3 -- n2 n3 ) ; rot drop
rotd2srotd2sforth( n1 n2 n3 -- n1 n1 n2 n3 ) ; rot dup 2swap
rot-lrotlforthbitwise rotate cell left
rot-rrotrforthbitwise rotate cell right
rotsrotsforth( n1 n2 n3 -- n2 n1 n3 ) ; rot swap
rowsrowsforthcount of lines sent after latest {open}
rp!rpstoreforth( -- .xx. ) restore returnstack-ptr from uvari {r0}
rp@rpfetchforthfetch returnstack-ptr
>rrtorrforth( n -- n ) copy sing to return-stack
r>>rrxchgforth( n1 -- n2 )(R n2 -- n1 ) ; r> swap >r
rscanrscanforthreverse scan stg for character
rshiftrshiftforth( n1 n2 -- n3 ) right shift
@rshiftmrshiftforth( p n -- ) right shift cell in memory
rshiftarshiftaforth( n1 n2 -- n3 ) arithmetic shift
@rshiftamrshiftaforth( p n -- ) arithmetic shift cell in memory
rskiprskipforthreverse skip characters from stg
rswaprswapforth(R n1 n2 -- n2 n1 ) swap on returnstack
r/wrbywfforth( -- n ) file open mode modifier
rw?rwqforth( c -- er ) whether a file is open in r/w mode
;ssemisforthterminate an execution sequence
.sdotsforthdispay datastack content
#ssharpsforthconvert a double to numeric chars
s=compareforthcompare always case dependently
s=seqforth-re- {compare}, always case dependently
s"sqteforthptr to 1st cahr of stg and count
s#.sdecdotforthsigned #.
s0s0forthptr to data-stack bottom
save-bufferssbufsforthsave updated blocks, "unassign" last buffer block
save-inputsaveinputforthsave input descriptors
s->bs2bnforthextract 4 bytes from sing
s->cs2cnforthsigned sing to byte
scanscanforthscan stg for character
scrscrforth'screen' no. of current screenfile
scr-chanpdovalforthno. of screenfile channel
s->ds2dnforthsigned sing to double
sdropsdropforth( n1 n2 -- n2 ) ; swap drop (a 'nip')
sdupsdupforth( n1 n2 -- n2 n1 n1 ) ; swap dup
searchsearchforthsearch for a string in memory
search-filesearchfforthsearch file for a string
seeseeforthde-compiler
selectedselectedforthccc{ -- ) activate {words} selection
setbsetb4forthset bit
sgnsgnforth( n1 -- n2 ) sign of sing
shiftshiftforth( n1 n2 -- n3 ) shift left
SIGNasignforthsign cell on tos
skipskipforthskip characters from stg
slistslistsforthcpl by suppl. char dlm. ref/subst stg
:slistcolslistforthinit ref/subst-list for {substitute}
slist,slistcforthcpl ref/subst stg to data-space
slist;slistsemiforthterminate list of ref/subst stg-s
slist"slistqteforthcpl by {"} delimted ref/subst stg
slit,slitcforthstore & allot string to data-space
sliteralsliteralforthcpl supplied stg
s>lowers2lowerforthconvert stg to lower-case
s>mstomforthstack bytes to mem
sm/remsmbyremforth( d1 n2 -- n3r n4q ) div round near zero
sourcesourceforthcurrent input source descriptor
source-chansourcechanforthchannel of current input source
source-idsourceidforthinput source flags
soversoverforth( n1 n2 -- n2 n1 n2 ) ; swap over (a 'tuck')
sp>fspstoreforth( .xx. -- ) clr data-stack
sp!spstoreforth( .. -- .. ) vectored to fig or ans mode, dft fig
sp@spfetchforthfetch datastack-ptr
spacespaceforthsend a blank space
spacesspacesforthmultiply send a blank space
spanspanforth#tib
span@spanfforthno. of last input chars
srotsrotforth( n1 n2 n3 -- n3 n2 n1 ) ; swap rot
sslicessliceforthstring slice by enclosing strings
?stackqstackforthabort if data-stack out of bounds
statestateforthcompiler/interpreter flags
state@statefforthwhether interpreting(0) or compiling(=/= 0)
stderrstderrcforthstderr channel no.
stdinstdincforthstdin channel no.
stdin?stdinqforthtf if input from console
stdoutstdoutcforthstdout channel no.
stgstg4forthdefines a string value
stringstngforthcpl by supplied char delimited stg
/stringsstringforthadjust stg parameters
substitutesubstituteforthsubstitute text from -re- {:slist}s
s>uppers2upperforthconvert stg to upper-case
s->ws2wnforthsigned sing to word
swapswapforth( n1 n2 -- n2 n1 ) exchange sings @tos w/ @nos
swap-swsubforth{ swap - } ; reversed cells subtract
swap2sswap2sforth( n1 n2 n3 n4 -- n4 n3 n2 n1 ) revert cells order
swapnswapnforthswap tos w. n-th cell
szlit,szlitcforthallot & store <nul>-terminated stg in data-space
szliteralszliteralforthcpl supplied <nul>-terminated stg
tabtabforthemit a <tab> char, adjust @out
tab-totabtoforthset cursor column, not less current posn
tasktaskforthtraditionally the forth kernel top word...
?terminalqterminalforth( -- n ) basic keyboard input query from stdin
thirdthirdforth( n1 n2 n3 -- n1 n2 n3 n1 ) ; 2 pick
thruthruforth{load} a range of screens, xec only
tibtibforthptr to terminal input buffer
#tibntibforth( -- n ) no. of chars fetched to tib
ti-calticalforthmeasured cpu clock rate
tick>stic2sforthconvert cpu clock count to seconds
timetime4forthsyscall gettimeofday
"timestime4forthstg w. time
>time&datetotidaforthcnv dn date to time&date format
.time&datedotimedateforthdisplay full size system date
"time&datestimedateforthstg w. full size system date
time&datetimedateforthtime & date in standard format
totovforthstore sing to alterable cons
+topltovforthadd @tos to a value
to-chantochanforthcopy a channel description
toolstoolsforthforth-voc, debugging
top-mblocktopmblockforthallocate data-space, extends into .bss section
+to-stgstgpsforthappend stg to stg value
to-stgstgsforthsto new stg value
-trailingmtrailingforthtruncate stg from trailing blanks
truetrueforthcons -1
true=tequforth( n -- f ) tf if cell is ANS-mode 'true' value
tstbtstbforthtest bit
typetypeforthsend a string
u^upowforth( u1 u2 -- ud3 ) unsigned double, n1 to the power of n2
u<ulessforth( n1 n2 -- f ) tf if unsigned @tos smaller than @nos
u>ugreaterforth( n1 n2 -- f ) tf if unsigned @tos greater than @nos
u?uquesforthunsigned display numeric content of cell at ptr
u.udotforthunsigned display a sing
u*umulforth( u1 u2 -- ud3 )
u+uplusforth( ud1 u2 -- ud3 ) unsigned add sing to double
u16/modubym16forth( u1 -- u2r u3q ) udiv by 16, rmd = u2r
u4/modubym4forth( u1 -- u2r u3q ) udiv by 4, rmd = u2r
u8/modubym8forth( u1 -- u2r u3q ) udiv by 8, rmd = u2r
uc<uclessforth( c1 c2 -- f ) tf if unsigned byte @tos < byte @nos
u->du2dnforthsing to unsigned double
ud/udbyforthdiv doubles, leave double quot
ud.uddotforthunsigned display a double
ud*udmulforthmul doubles, leave double prod
?udcmpqudcmpforth( d1 d2 -- d1 d2 f ) f=(d1 u< d2)-(d2 u< d1)
udisp?udispqforth( n -- n f ) uot disp range check
udm*udmmulforth( ud1 u2 -- ud3 n4 ) treble prod, n4 = ovf
udm*/modudmmulbymforth( d1 n2 n3 -- u5r ud4q ) d1 u* n2 u/ n3
ud/modudbymforthdiv doubles, leave double quot & rmd
ud.ruddotrforthunsigned right aligned display a double
udsqrtudsqrtforth( d1 -- d2 n ) +ve double square root, sing 'j'-flag
um/umbyforth( ud1 n2 -- u3r ud4q )
um*umulforth( u1 u2 -- ud3 )
um*/ummulbyforth( n1 n2 n3 -- ud4q ) n1 u* n2 u/ n3
umaxumaxforth( n1 n2 -- n3 ) leave unsigned greater of top two sings
umd*umdmulforth( ud1 d2 -- uq3 )
uminuminforth( n1 n2 -- n3 ) leave unsigned smaller of top two sings
um/modumbymodforth( ud1 u2 -- u2r u3q )
u/modubymforth( u1 u2 -- u2r u3q )
umq^umqpowforth( n1 n2 -- uq3 ) unsigned quad n1^n2
unpackunpackforthpacked nib to byte
untiluntilforthREPEAT if @tos = 0 else leave BEGIN structure
unusedunusedforth( -- n ) free space in data-memory
upupforthptr to next available user vari
up+upplusforthadd disp to ptr to uservari-space
updatepdodeferforthmark buffer to save before re-useage
uq.uqdotforthunsigned display a quad
uq*uqmulforth( q1 q2 -- o3 ) unsigned mul q by q to 8 cells prod
uq2/uqdiv2forth( q1 -- q2 ) unsigned div quad by 2
?uqcmpquqcmpforth( q1 q2 -- q1 q2 f ) unsgnd compare, f=1 if q2 u< q1
uqd*uqdmulforth( q1 d2 -- q3 d4 ) mul quad by duble to 6 cells prod
uqd/moduqdbymforth( q1 d2 -- d3r d4q ) q by d, double quot & rmd
uqmaxuqmaxforth( q1 q2 -- q3 ) unsigned greater of two quads
uqminuqminforth( q1 q2 -- q3 ) unsigned smaller of two quads
uqm/moduqmbymforth( q1 d2 -- d3r q4q ) q by d, quad quot, double rmd
uq/moduqbymforth( q1 q2 -- q3r q4q )
uq.ruqdotrforth( q1 n2 -- ) unsigned right aligned display a quad
uqsm/uqsmbyforth( q1 n2 -- n3 q4 ) q by sing, ret quad quot, sing rmd
uqsm*uqsmmulforth( q1 n2 -- q3 n4 ) mul quad by sing to 5 cells prod
u.rudotrforthunsigned right aligned display a sing
usingusingforthscreenfile for {load} opr.
utilutilityforthforth-voc, forth utiliy words
uv@uvfetchforthfetch uvari by disp
uwithin?uwithinqforthunsigned test & adjust 3rd w/ range of 2nd..1st
val+valpforthalterable increment by a.u.
valuevalueforthalterable 'constant'
variablevariableforthuninitiated (set to 0) variable
vcells+cellsvpforthalterable increment by cells
vlistvlistforthsequentially list context vocabulary
vocabularyvocabularyforthdefine a vocabulary by name
voc-linkvoclinkforthwordlists and vocabularies link-ptr
#vocsnvocsforthmax no. of items in voc-stack
vtvtforthforth-voc, vt..-control
?vtqvtforthquery terminal type
w,wcommaforthcompile l.s. half sing (2 bytes) to data-space
w!wstoreforth( n p -- ) sto l.s. half cell of sing to memory
w!-wstoremforth( p1 -- p2 n ) pre-decrement & store word
w!!wxstoforth( p1 p2 -- ) xchange half cells in memory
w!+wstorepforth( n p1 -- p2 ) store word & post-increment
w@wfetchforth( p -- n ) fetch half cell ("word") from memory
w@!wfstoforth( p1 p2 -- ) copy half cell from/to memory
w@+wfetchpforth( p1 -- p2 n ) nos=tos+2,tos=w@kref(tos)
waitsleepsforthwait given no. of seconds
w-closewcloseforthclose the work-channel
whilewhileforthif @tos = 0 leave BEGIN structure
widthwidthforthmax count of a 4th name -n.i.-
<withltwithforthn.i. (defn rules inheritage, re idx>do)
withinwithinforthun/signed test 3rd w/ range of 2nd..1st
within?withinqforthsigned test & adjust 3rd w/ range of 2nd..1st
w/owbyofforthfile open mode modifier
w-okwokforthfile access query modifier
wordXWORDforthfetch text enclosed by supplied char, ret ptr
wordlistwordlistforthdefine a 'wordlist'
wordswordsforthsorted list context vocabulary
workworkcforthwork-channel no. (for file opr's)
write-charwritecharforthwrite (multi-byte) char to channel
write-filewritefileforthwrite no. of bytes from buffer to file
write-linewritelineforthwrite send string to file & append <lf> code
w->sw2snforthl.s.word to sing
wswapwswapforth( n1 -- n2 ) swap hi & lo half of cell @tos
xec?xecqforth( n -- a f ) xec-addr from ix/ptr
xg-chanxgchanforthexchange two channel descriptions
x-okxokforthfile access query modifier
xorxxorforth( n1 n2 -- n3 ) bitwise XOR sings
xor!xorsforth( n p -- ) xor to cell in memory
xyxyforthfetch cursor posn
z"zqteforth<nul>-terminated stg literal
zcountzcountforth( p1 -- p2 u ) {count} wrt <nul>-terminated stg
zprintzprintforthdisplay <nul> terminated stg
(.")pdotqtephiddenruntime display stg
(")pqtephiddenruntime ptr to stg
0anddnghidden( n -- 0 ) replace @tos w/ 0
0branchzbrahiddenruntime branch if flg = 0
?0branchzdupbrahiddenruntime branch if flg = 0, else dup
0<branchmibrahiddenruntime branch if flg < 0
0>branchgtbrahiddenruntime branch if flg > 0
0-branchlebrahiddenruntime branch if flg not > 0
(-0exit)pdzexitphiddenruntime if ff leave current word
0ifnifhiddenopt, subst. { ... if else }
0mpdodeferhiddenre-display screenfile listing
[0m]bm0bhiddenscr re-listing after {m} dft opr.
?1branchnzdbhiddenruntime branch and dup if flg =/= 0
1ordgthidden( n -- 0 ) replace @tos w/ 0
3rd-q1+q1pthidden( q1 qx qy -- q2 qx qy ) inc quad q1 by one
3rd-q2*qmul2thidden( q1 qx qy -- q2 qx qy ) mul quad q1 by two
3rd-uq2/uqdiv2thidden( q1 qx qy -- q2 qx qy ) unsigned div quad q1 by two
8notnot8hidden( o1 -- o2 ) bitwise complement top 8-cells item
[abort]babortbhiddendeferred {abort} dft
(accept)uaccepthiddenxec. vec
[accept]osaccepthiddendft accept
a-heapaheaphiddenallocated heap memory linkage base -n.i.-
(argc)argchiddenprogram's arguments count
(argn)argnhiddeninternal, 2nd-ary args count
argpargpphiddenptr to args to program
(argp)argphiddenptr to args to program
(args)argshidden1st in-active arg#
(aux)pauxphiddeni/o flags
(bits)bbitsbhiddensystem flags
blblblblhiddencons 8224 (double bl)
(block)ublockhiddenxec. vec
[block]bblockbhidden{block} default opr.
body>lfabody2lfahiddenptr to lfa from data-"body"
(bootp)ubootphiddenptr to xec's data area
(bot)mbothiddenbase job true addr of .bss bottom
branchbranchhiddenruntime branch unconditionally
-branchnzbrahiddenruntime branch if flg =/= 0
?=branchneqbrahiddenruntime branch if @nos =/= @tos
+branchplbrahiddenruntime branch if flg not < 0
(buffer)ubufferhiddenxec. vec
[buffer]bbufbhidden{buffer} default opr.
buildbuildhiddencpl a linked header name
(can)ucanhidden<can> code
casehead-sizecaseheadszhidden( -- n ) size in bytes of {case:}-list header
cases,caseschidden( -- ) {case:} &c, cpl ix or sing until {;}
cbytescbytes4hiddencount of l.s. significant chars/cell
(cc4th)icc4thhiddenxec. vec
(chans)pchansphiddenptr to base of channel description tables
(cmc)ucmchiddencompiler control counter for back-patching bound
(compile)ucompilehiddenxec. vec
cplcplhiddenmake compiled code permanent
cpl;csemishiddenterminate permanent code compilation
@cspfcsphiddenrestore sp from @csp
csp@cspfhiddenfetch stored sp from csp to tos
[ctype]bctypebhiddendft non-escaping type
data?dataqhiddentf if ptr points to data space
([debug])updebugphiddenxec. vec, initially zero i.e. a noop
defer-lkpdovarhiddenbase link of deferred words
dlitdlithiddenruntime dliteral
(?do)pqdophiddenruntime ?do
(do)pdophiddenruntime {do}
(dpl)pdplphiddeni/o flags
(d.r)pddotrphiddenstg to right aligned display a signed double
drop;sdropshiddencombined drop and ;s
dsp>xecdsp2xechiddenxec ptr from pc-rel ref at ptr
(eax)ueaxhiddeninitial reg storage
(ebp)uebphiddeninitial reg storage
(ebx)uebxhiddeninitial reg storage
(ecx)uecxhiddeninitial reg storage
(edi)uedihiddeninitial reg storage
(edx)uedxhiddeninitial reg storage
(ekey?)uekeyqhiddenxec. vec
(emit)uemithiddenxec. vec
[emit]bemitbhiddendft emit
environmentenvironmenthiddenhidden-voc, ansi-ish environment queries
envpenvpphiddenptr to program's environmental vari
(eof)peofphiddenreceived chars count, zero at eof
(eol)ueolhidden<eol> code
(?error)uqerrorhiddenxec. vec ?error
(error)uerrorhiddenxec. vec
[?error]bqerrbhiddendft ?error
[error]berrbhiddendft error
(escc)uescchiddenescape symbol for {etype}
(esi)uesihiddeninitial reg storage
(esp)uesphiddeninitial reg storage
[etype]betypebhiddendft escaping type
(eval)uevalhiddenxec. vec
[eval]bevalbhiddendft evaluate
(-exit)pdexitphiddenruntime if tf leave current word
favpdodeferhidden{find}-mode, internal to {help}
f-heapfheaphiddenfree heap memory linkage base -n.i.-
(find)pfindphiddenruntime find in specified vocabulary
flitflithiddenruntime ANS dliteral
[fnpfnamephidden[fname] runtime code
forget-lkpdovarhiddenbase link of specific forget actions
get-vocflagsgvocflagshiddenfetch vocabulary-specific flags at voc-stack
headheadhiddenbuild a word header
(head)pheadphiddencpl head-ptr
(hichar)phicharphiddenupper case char codes
(hi>lo)uhi2lohiddenptr to table of lower case characters
hld0hld0hiddeninitial hld after <#
idx>doidx2dohiddendoes>-entry per ix
idx>pfaidx2pfahiddenpfa from uot index
idx>udsidx2udshiddendisp to base of uot
idx>uotidx2uothiddenptr to uot entry from index
idx>wididx2widhiddenindex to wordlist id
idx>xecidx2xechiddenexecution ptr from index
(ierr)ierrhiddeninput opr. error code
ifa>lfaifa2lfahiddenptr to uot index from lfa
iforgetiforgethiddenforget by ix
(inchp)pinchpphiddenchp of latest used input channel
(]interpret)ubinterprethiddenxec. vec, initially zero i.e. a noop
(interpret)uinterprethiddenxec. vec
(interpret[)uinterpretbhiddenxec. vec, initially zero i.e. a noop
(ioacc)uioacchiddenreceived vt.. control chars -n.i.-
(iolink)iolinkhiddeni/o redirection linkage
kernel?kernelqhiddentf if ptr points to kernel space
kmessagekmessagehiddensend message txt to STDOUT, uninitated
kprog?kprogqhiddentf if ptr points to kernel or program space
(-leave)pmleavephiddenruntime -leave
(leave)pleavephiddenruntime leave
lfa>bodylfa2bodyhiddenptr to data-"body" from lfa
lfa>ffalfa2ffahiddenptr to compileflags from lfa
lfa>headlfa2headhiddenbeginning of word-header
lfa>ifalfa2ifahiddenptr to uot index from lfa
lfa>mfalfa2mfahiddenmacro field from lfa
lfa>widlfa2widhiddenvocabulary linkfield
lfa>xeclfa2xechiddenexecution ptr from lfa
litlithiddenruntime literal
(lkindex)plkindexphiddencpl next u.o.t. index
[load]bloadbhiddendft for deferred -re- {load}
locallocalhiddenhidden-voc, local memory control & names
local:locolhiddendef. a local alterable constant
(locb)locbhiddenuvari, bytecount
[locdef]blocdefbhidden[_] also [_] local definitions
(lochar)plocharphiddenlower case char codes
(locn)locnhiddenuvari, items per defn count
(lo>hi)ulo2hihiddenptr to table of upper case characters
(+loop)pploopphiddenruntime +loop
(loop)ploopphiddenruntime loop
(m/mod)upmbymphiddenxec. vec
namenamehiddenfetch a <bl>-enclosed filename, { bl word count }
nlitnlithiddenruntime bliteral
nos-4notnot4nhidden( q1 qx -- q2 qx ) bitwise complement quad @nos
nos-q1-q1mnhidden( q1 qx -- q2 qx ) dec quad @nos by one
nos-q1+q1pnhidden( q1 qx -- q2 qx ) inc quad @nos by one
nos-q2/qdiv2nhidden( q1 qx -- q2 qx ) div quad @nos by two
nos-q2*qmul2nhidden( q1 qx -- q2 qx ) mul quad @nos by two
nos-qnegateqnegatenhidden( q1 qx -- q2 qx ) negate quad @nos
nos-uq2/uqdiv2nhidden( q1 qx -- q2 qx ) unsigned div quad @nos by two
n@spnnposnhiddencells disp to indexed 'bignum'
null?nullqhiddentf if 4th ptr is zero true address
(>number)utonumhiddenxec. vec >number
(number)unumberhiddenxec. vec
[>number]btonumbhiddendft >number
o-osubhidden( o1 o2 -- o3 ) subtract 8-cells numbers
o+oplushidden( o1 o2 -- o3 ) add 8-cells numbers
o0=ozeqhidden( o1 -- flg ) test eight-cells for zero
o1+o1phidden( o1 -- o2 ) inc eight-cells integer by one
ocontextocontexthiddenprevious {context}, 2nd in search order
ocurrentocurrenthiddenprevious {current}
(oerr)oerrhiddenoutput opr. error code
(ok)upokphiddenxec. vec
[ok]bokbhiddendft ok
onegateonegatehidden( o1 -- o2 ) negate eight-cells integer
(outchp)poutchpphiddenchp of latest used output channel
(padsz)padszhiddenpads' and max+4 input stgs' sizes
(path)upathhiddenptr to PATH env. vari
(pause)upausehiddenxec vec after {wait4..} timeout
(pchr)pchrhidden4 bytes ranges of printing chars
pfa>lfapfa2lfahiddenlfa from pfa
prog?progqhiddentf if ptr points to program space
(q.)pqdotphidden( q sgn fmt -- ) quad to string
qlitqlithiddenruntime qliteral
(quit)uquithiddenxec. vec
[quit]bquitbhiddendft quit
!rstorerhidden( p -- )(R n -- ) ; r> swap !
(r)prphiddenformatted output fill char(s)
r+rplushiddenfetch next cell from 2ndary subroutne level
root-wordlistrootwlhiddenwid of {root}
(s")psqtephiddenruntime sliteral
scanvocsscanvocshiddenexecute a vector by ix on all wordlists
[scanvocs]bscanvbhiddenexecute vector by xec ptr on all wordlists
(scanwl)uscanwlhiddenxec. vec
scanwlistscanwlisthiddenexecute a vector on stacked wordlists
set-calsetcalhiddencalibrate timer, find cpu clock rate
set-vocflagssvocflagshidden(re)store vocabulary-specific flags at voc-stack
sforgetsforgethiddenforget by supplied string and top ix
(source)usourcehiddenxec.vec of {source}, dft [source]
[source]bsourcebhiddendft xec vec for {source}
(source-id)psourceidphiddensaved source-id
(sp!)ustosphiddenxec. vec
[squit]bsquitbhiddendft quit entry after segfault
(sstop)sstophiddenbase job true addr of .bss top
(stimo)ustimohiddenwait4.. timeout value
(#tab)pntabphiddentab spacing
(tail)ptailphiddencpl tail-ptr
(tattr)utattrhiddenmodified console attributes
(tattr-s)ustattrhiddensaved console attributes
(?terminal)uqterminalhiddenxec. vec ?terminal
testvoctestvochiddenhidden-voc, (praeliminary tests)
(#tib)pntibphidden#tib storage
(tib)ptibphiddenptr to terminal input buffer (t.i.b.)
tib-dfttibdfthiddendefault t.i.b. location
(tib-max)ptibmaxphiddenspace of tib
tib-maxtibmaxhiddenstorage size of t.i.b.
(tick)ptickphiddencpu-clocks per second
<top>utophiddentop address of user-vari space - don't read,store!
(top)mtophiddenglobal true addr of .bss top
(type)utypehiddenxec. vec
[type]pdodeferhiddendeferred, string to stdout
ucopyusercopyhiddencopy user-vari from owner to cloned job
(ud.r)puddotrphiddenstg to right aligned display an unsigned double
uds>idxuds2idxhiddenindex from compiled disp to uot-ptr
(ulink)plinkphiddenuvari link
(unloop)rdrop2hiddenruntime unloop
(uot)ultabhidden"user offset table" 4th words' true xec addr.
uot>idxuot2idxhiddenindex from uot-ptr
[upd]bupdbhiddendft opr for {update}
(vbot)vbothiddenend of user area
(vpal)uvpalettehiddeninitial console colours storage
(vtim)uiovtimhiddenkeyboard input timeout, "VTIME" & "VMAX" values
wdw-lkpdovarhiddendouble linkage of window defn's
wid>idxwid2idxhiddenwordlist id to index
wid>lfawid2lfahiddenword-lfa from voc-link posn
wid>topwid2tophiddenptr to top header in voc from voc-link posn
xec>idxxec2idxhiddenindex from execution ptr
xec>lfaxec2lfahiddenptr to linkfield from execution ptr
xec>uotxec2uothiddenptr to execution ptr in uot from execution ptr
(alarm)pdodeferlinuxSIGALRM redirection, dft { .s }
alcjoballocjoblinux-/-
appappflinuxfile open modifier, "append"
argstgargstglinuxprog args by no.
bye-rbyerlinuxxit program with code n
cdt-flagscdtflagslinuxdisp of channel flags to channel defn ptr
cdt-fptrcdtfptrlinuxdisp of file ptr double cell to cdt ptr
cdt-sizecdtsizelinuxsize of channel defn storage
cdt-xptrcdtxptrlinuxdisp of channel extn ptr to channel defn ptr
ch-cons?chconsqlinuxtf if echoing console flag set
chdirchdirflinuxchange cwd to supplied
ch-eofcheoflinuxtf if channel at eof
ch-flagschflagsflinuxchannel flags dword
ch-idchidlinuxchannel identifier
chn-numchnnumlinuxtop chan a copy of which is in supplied ch-id
ch-omodechomodeflinuxchannel open mode
chpchplinuxptr to channel definition table
chp>chanchp2chlinuxget channel no. by chp
ch-permchpermflinuxchannel permission bits
ch-pipe?chpipeqlinuxtf if pipe flag set
ch-pty?chptyqlinuxtf if pty-device flag set
ch-rnumchrnumlinuxlatest err code
ch-statchstatlinuxfetch channel state into cdt
ch-tagchtaglinuxchannel's tag no.
crecreflinuxfile open modifier, "create"
create-dircreadlinuxcreate directory by supplied name
ctagpdovarlinuxglobal channel open tag
cwd@cwdflinuxget current working directory path-name
dirdirflinuxfile open modifier, "type directory"
envstgenvstglinuxenv vari by no.
err-iderridlinuxchannel-id of error channel
faccessfaccessfdlinuxby channel test file access permissions
fcntlcfcntllinuxsyscall, files acces &c
fd>chanfd2chlinuxsto file descriptor to channel
file-statusfstatflinuxfile state by name -re- ans {FILE-STATUS}
(fperm)ufpermlinuxdefault new file access permissions
fposrefposrelinuxadjust file-ptr relative to current posn
fstatffstatflinuxfile status by channel no.
get-changetchanlinuxfetch channel description data
getenvgtenvlinuxenv vari by strg
getgotgetgotlinuxptr to lib's ELF global offset table
gid!gidslinuxset process group id
gid@gidflinuxfetch process group id
hash11hash11linuxELF standard hash figure
heaphead-sizehpheadslinuxsize of a heap/device description header
in-idinidlinuxchannel-id of input channel
ioctlcioctllinuxsyscall, limited i/o ports range
iomodeiomodelinuxcheck and (re)set i/o-channel flags
iopermsysiopermlinuxsyscall, i/o permissions, interrupts
ioplsysiopllinuxset i/o priority (root user, only)
kbd-chankbdchanlinuxkeyboard channel constant
kbd-idkbdidlinuxidentifier of keyboard channel
llseekllseekflinuxabs/rel set posn of file-ptr (syscall)
lock-filelockflinuxlock file, prevent write access
lxfileslxfileslinuxhost definitions source-files
lxpathlxpathlinuxpath to host definitions source
lxstglxstglinuxcontrol strings by indices
max-chanmaxchanlinuxmax no. of supplied channel description tables
mcreate-dirmcreadlinuxcreate directory w/ supplied access mode
mcreate-filemcreaflinuxcreate file w/ supplied access mode
mfopenmfopenlinuxopen file w/ supplied access mode by fetched stg
mm-ammalinuxMAP_ANONYMOUS 0x20, don't use a file
mmapmmaplinuxmap a file into memory
mmap-chanmmapclinuxsimplified, map a file by chan into memory.
mmap-filemmapflinuxsimplified, map a file by name into memory.
mm-dmmdlinuxMAP_DENYWRITE 0x0800, ETXTBSY
mm-emmelinuxMAP_EXECUTABLE 0x1000, mark it as an executable
mm-fmmflinuxMAP_FIXED 0x10 Interpret addr exactly, fail otherwise
mm-gmmglinuxMAP_GROWSDOWN 0x0100, stack-like segment
mm-lmmllinuxMAP_LOCKED 0x2000, pages are locked
mm-nmmnlinuxMAP_NORESERVE 0x4000, don't check for reservations
mm-pmmplinuxMAP_PRIVATE 0x02, Changes are private
mm-smmslinuxMAP_SHARED 0x01, Share changes
mopen-filemopenflinuxopen file w/ supplied access mode by supplied stg
mprotectmprotlinuxmemory access permissions
mremapmremaplinux( p1 u1 u2 flg -- p3 ) change memory mapping
mr-fmrflinuxMREMAP_FIXED 2
mr-mmrmlinuxMREMAP_MAYMOVE 1
ms-amsalinuxMS_ASYNC 1, sync memory asynchronously
ms-imsilinuxMS_INVALIDATE 2, invalidate the caches
ms-smsslinuxMS_SYNC 4, synchronous memory sync
msyncmsynclinuxsync. memory data w/ mapped file
munmapmunmaplinuxdetach {mmap}ped file from memory
nblnblflinuxfile access modifier to non-blocking
nofnofflinuxfile access modifier to not following links
open-diropendirflinuxopen directory-file by supplied name
open-pipeopipelinuxopen a pipe, ret i/o channels
ottyottylinuxopen stdin at tty
out-idoutidlinuxchannel-id of output channel
out-pty?outptyqlinuxtf if stdout is a pty device
p!pslinuxstore 32bit item to port
p@pflinuxfetch 32bit item from port
page-sizepagesizelinuxLinux kernel constant
palignedpalignplinuxpage align to next multiple of page size
paligned-palignmlinuxpage align (truncate)
path+filepthfilelinuxfind file in PATH, ret fully qualified path
path-maxpathmaxlinuxmax len of path string
pc!pcslinuxstore 8bit item to port
pc@pcflinuxfetch 8bit item from port
pc!spcsslinuxstore multiple 8bit items to port
pc@spcfslinuxfetch multiple 8bit items from port
pid@pidflinuxfetch own process id
preadpreadflinuxread text at given fileptr
prot-rprotrlinuxbitmask to disabling read-protection
prot-wprotwlinuxbitmask to disabling write-protection
prot-xprotxlinuxbitmask to disabling xec-protection
prt-chanpdovallinuxno. of printer channel
p!spsslinuxstore multiple 32bit items to port
p@spfslinuxfetch multiple 32bit items from port
pty?ptyqlinuxtf if channel is a pty device
pw!pwslinuxstore 16bit item to port
pw@pwflinuxfetch 16bit item from port
pwdpwdlinux( -- ) print working directory
pwritepwriteflinuxwrite text to given fileptr
pw!spwsslinuxstore multiple 16bit items to port
pw@spwfslinuxfetch multiple 16bit items from port
readlinkreadlklinuxread a linked files' source name
rsttyrsttylinuxreset stdin-console to initial state
set-chansetchanlinuxstore channel description from data-stack
settysettylinuxprepare stdin console to single-key input
(sighnd)sighlinuxbase of signal handlers def.blocks
sighnd-sizesighszlinuxsize of a signal hnd definition block
sigmsgsigmsglinuxsend messgae, leave msg-no. at nos
signosignolinuxconvert signal name to number
signo?signoqlinuxdisplay known signal names
sigstgsigslinuxconvert signal number to name
sleepsleepslinuxhalt caller for given time in seconds
sleep-msleepmlinuxhalt caller for given time in microseconds
sleep-nnsleeplinuxhalt caller for given time in nano- and seconds
stat-sizestatsizelinuxsize in bytes of file-status required buffer
stty-ssttyslinuxsimulates Linux cmd 'stty sane'
synsynflinuxfile access modifier to blocking mode
syssyslinuxexecute syscall by name
(sys)psysplinuxfind syscall-no. by name
[sys]bsysblinuxexecute syscall by namestring
syscallscalllinuxsystem call by number
syskillsyskilllinuxsend signal
termetermlinuxTERM env vari
timezonetz4linux'timezone' figure from <gettimeofday>
"timezonestz4linuxstg w. numeric 'timezone'
trntrnflinuxfile access modifier to truncate after open
uc-mapuclmlinuxmap keyboard input to lower chars
uc-unmapuclulinuxdo not map keyboard input to lower chars
uid!uidslinuxset process user id
uid@uidflinuxfetch process user id
umaskumaskflinuxglobally set new files default access mode
umask?umaskqlinuxread file creation permissions mask
unlock-fileunlockflinuxunlock file from preventing write access
wait4'wait4tlinuxxec by name w/ temp. timeout
wait4chwait4chlinuxsys_select for any channel's input timeout
wait4fdwait4fdlinuxsys_select for any fd input timeout
wait4inwait4inlinuxsys_select for console stdin timeout
wait4kbdwait4kbdlinuxsys_select for keyboard stdin timeout
wait4tiwait4tilinuxsys_select for any channel's timeout
wait4xwait4xlinuxxec by xt w/ temp. timeout
work-chanpdovallinuxdefault {work} channel no.
work-idworkidlinuxwork-channel identifier
work-numworknumlinuxactual {work} no.
xg-ioxgiolinuxexchange stdin and stdout channel descriptions
loc!!locxstolocalexchange two local values
loc'locticklocalfind a local values xt by supplied name
loc2!loc2slocalsto double local; sing -re- {to}
loc2@loc2flocalfetch double local; sing by name
loc-bodylocbodylocal>body wrt local value, ptr to disp wrt @s0 field
lplplocallocal memory running ptr
2!!twoxstofnonmmxxchg doubles
2@!twofstofnonmmxcopy double
2lshiftdlshiftfnonmmx2lshift
2rotrot2fnonmmx2rot
2rotdrotd2fnonmmx2rot 2drop, duplicate 3rd on tos
2rshiftdrshiftfnonmmx2rshift
2rshiftadrshiftafnonmmx2rshifta
2sduptwosdupfnonmmx2swap 2dup
2sovertwosoverfnonmmx2swap 2over
2srotsrot2fnonmmx2swap 2rot
3dupdup3fnonmmxdup 2over rot
4!!qxstofnonmmxxchg quad
4dupdup4fnonmmx4dup
4overover4fnonmmx4over
4rotrot4fnonmmx2 4roll
4-rotmrot4fnonmmx-2 4roll
4rotdrot4dfnonmmx2 4roll 4drop
4sdropsdrop4fnonmmx4swap 4drop
4soversover4fnonmmx4swap 4over
4swapswap4fnonmmx4swap
8dupdup8fnonmmx4over 4over = 8 ndup
8overover8fnonmmx( o1 o2 -- o1 o2 o1 )
8sdropsdrop8fnonmmx( o1 o2 -- o2 )
8soversover8fnonmmx( o1 o2 -- o2 o1 o2 )
femmsfemmsfnonmmxclr fp & mmx state, sync cpu
rotd2srotd2sfnonmmx2 pick -rot, duplicate 3rd on tos
udsqrtfudsqrtnonmmx+ve double square root of double, sing 'j'-flag
blwBLWORDnovoc{ bl word find }, kernel only
bwfblwfnovoc{ bl word find }, kernel only
(cdpcdpnovoc{cd} runtime
(chccasecnovoc( -- p ) build named list
c+sctpsnovoc{c+stg} runtime
(dadoassocnovoc( n1 p -- n2 ) {associative:} runtime
(dcdocasecnovoc( ix p -- xx ) {case:} runtime
(ddddinovoc( n1 p -- n2 ) {is-default} runtime
ddfdodfernovocxec a deferred word
ddkpdodefernovocxec a kernel-deferred word
ddododoesnovocxec <pfax>-words
df?dfdernovocundef'd deferred word error if ff
dfgdfdfgnovocdft forget action for deferred word
(didfinovoc( n1 p -- n2 ) {default-is} runtime
(drdorangecnovoc( n1 p -- n2 ) {range:} runtime
dvapdovarnovocpfax'ed value
dvodovocnovocvocabulary
ekmerkmsgnovocuninitiated error message
esmersmsgnovocsigned error no., message
euderudotnovocunsigned error no., message
eumerumsgnovoc4th message
euserustgnovocsend a text
fgafganovoc{alias} forget-handler
fgbfgbnovocscreenfile buffer blocks forget handler
fglfglnovocforget> runtime code
(for)pforpnovocruntime ranum {FOR}
(+from)ppfrompnovocruntime ranum {+FROM}
(from)pfrompnovocruntime ranum {FROM}
(i1dointegernovoc{integer} runtime
(i2dointeger2novoc{2integer} runtime
(i4dointeger4novoc{4integer} runtime
(icdoiscnovoc( n1 n2 ix -- ) {iscase} runtime
(isdoisnovoc( n1 p -- n2 ) {is} runtime
[kbbkbdtnovoc{ kbd' name } xec name w. stdin from console
kb]kbdtbnovoc{ kbd' name } xec name w. stdin from console
(kcpdocasecnovoc( ix p -- xx ) kernel-{case:} runtime
l!!dolxstonovocxchg 2 locals
la:dolocanovocallocate local values' memory
;lvdolocrnovocfree local space
lv>doloccnovoccpl ref to local value
lv:dolocinovocinit a local value
lv@dolocvnovocfetch interpreting defined locv.
lz:dolocznovoczero-init a local value
ndfndferdnovocundef'd deferred word error
(next)pnextpnovocruntime ranum {NEXT}
n.inimpnovoc'not implemented' in kernel
sgbrsigbnovocexitting signals hnd
sgtrsigtnovocmessaging/lib4th active signal hnd
srdpsortedpnovocby {sorted} compiled runtime
(step)psteppnovocruntime ranum {STEP}
tstsnovoc{to-stg} runtime
t+stpsnovoc{+to-stg} runtime
(vlpdovalnovocfetch a kernel-def'd value
(vrpdovarnovocfetch a kernel-def'd vari
wzowritezonovocsend asciz-string
0dvv0dvracons( -- dv ) 0
0qvv0qvracons( -- qv ) 0
0vv0vracons( -- v ) 0
100dvv100dvracons( -- dv ) 100
10^(1/2)casqr2n10racons( -- v )
1dvv1dvracons( -- dv ) 1
-1dvvm1dvracons( -- dv ) -1
1qvv1qvracons( -- qv ) 1
-1qvvm1qvracons( -- qv ) -1
1vv1vracons( -- v ) 1
-1vvm1vracons( -- v ) -1
2^(1/12)casqr12n2racons( -- v )
2^(1/2)casqr2n2racons( -- v )
3^(1/2)casqr2n3racons( -- v )
bernulli(v)bernullivracons( n -- v ) sing, bernulli'sche zahlen
ccacracons( -- v ) speed of light
dv.ecaedracons( -- dv ) the natural constant
dv.e^10cae10dracons( -- dv ) 10 * lim (1+1/n)^n
dv.e^6cae6dracons( -- dv ) 6 * lim (1+1/n)^n
dv.ln(10)cdvln10racons( -- dv ) double, log 10 base e
dv.ln(2)cdvln2racons( -- dv ) double, log 2 base e
dvovfdvovfracons( -- dv ) double overflow indicator
ecaeracons( -- v ) natuerliche zahl
e^10cae10racons( -- v ) 10 * lim (1+1/n)^n
e^6cae6racons( -- v ) 6 * lim (1+1/n)^n
euler-ccaecracons( -- v ) euler'sche zahl
euler(v)eulervracons( n -- v ) sing, euler'sche zahlen
k(h)cakphpracons( -- v ) CORDIC hyperbolic correction
k(t)cakptpracons( -- v ) CORDIC trigonometric correction
lg(2)calg2racons( -- v ) log 2 base 10
lg(e)calgeracons( -- v ) log e base 10
ln(10)caln10racons( -- v ) log 10 base e
ln(2)caln2racons( -- v ) log 2 base e
picapiracons( -- v ) pi, kreiszahl
qv.2/3picqv23piracons( -- qv ) quad pi*2/3
qv.2picqv2piracons( -- qv ) quad pi*2
qvovfqvovfracons( -- qv ) quad overflow indicator
qv.pi/180cqvpi180racons( -- qv ) quad pi/180, for rad<->deg conversion
qv.pi/2cqvpi2racons( -- qv ) quad pi/2
qv.pi/4cqvpi4racons( -- qv ) quad pi/4
qvrdvqvmdvracons( -- qn ) quad int limit for qvround to range of double
vovfvovfracons( -- v ) sing overflow indicator
1/qvqvreciprahidden( dv1 -- dv2 ) abs(1 div by dv1)
atg(qv)atgqvrahidden( qv1 -- qv2 ) arcus tg
>chgtchrahidden( p u c -- n ) find 1st occurrence of char c
cos(qv)cosqvrahidden( qv1 -- qv2 ) cosinus
d>qvd2qvrahidden( dn -- qv ) double int signed to quad ranum
<#dv#>ltdvgtrahidden( dv -- p u ) convert dv to rational num stg
<#dvf#>ltdvfgtrahidden( dv -- p u ) convert dv to floating pt num stg
dv>udv?dv2udvqrahidden( dv -- udv flg ) |dv| and sign flag
dv>uqvdv2uqvrahidden( dv1 -- qv2 ) unsigned expand double to quad qv2
dv>uqv?dv2uqvqrahidden( dv -- +qv f ) |dv| to quad and sign flag
e^qvepowqvrahidden( qv1 -- qv2 ) quad e to the power of qv1
#fdpdovalrahiddenranum integral part delimiter, dft=<bl>
n>qvn2qvrahidden( n.N -- qv ) counted int trunc/signed to quad ranum
#n!vpdovalrahiddenmax+1 for sing factorial calculations, dft=13
qf.qfdotrahidden( qv -- ) display quad ranum in f.p. format
qf#.qfdecdotrahidden( qv -- ) decimal display quad ranum in f.p. format
qf.jqfdotjrahidden( qv n1 n2 -- ) l/r justified display quad f.p.
q>qvq2qvrahidden( qn -- qv ) quad int signed to quad ranum
>quadtoquadrahiddenccc( -- q d f ) convert stg to quad number
qv^qvpowqvrahidden( qv1 qv2 -- qv3 ) qv1 to the power of qv2
qv~qvaeqrahidden( qv1 qv2 -- f ) tf if q1 approx. equal to q2
qv=qveqrahidden( qv1 qv2 -- f ) tf if q1 equal to q2
qv-qvsubrahidden( qv1 qv2 -- qv3 ) subtract quad ranums
qv!qvstorerahidden( qv p -- ) store ranum qv to memory at p
qv/qvdivrahidden( qv1 qv2 -- qv3 ) divide quad ranums
qv.qvdotrahidden( qv -- ) display quad ranum
qv@qvfetchrahidden( p -- qv ) fetch ranum qv from memory at p
qv*qvmulrahidden( qv1 qv2 -- qv3 ) multiply quad ranums
qv+qvplusrahidden( qv1 qv2 -- qv3 ) add quad ranums
?qv0=qqvzeqrahidden( qv -- qv f ) tf if qv is zero.
qv1-qvonemrahidden( qv1 -- qv2 ) subtract 1 from qv1
qv1+qvoneprahidden( qv1 -- qv2 ) add 1 to qv1
qv2/qv2divrahidden( qv1 -- qv2 ) signed divide by 2
qv2*qv2mulrahidden( qv1 -- qv2 ) multiply by 2
qv2dupqv2duprahidden( qv1 qv2 -- qv1 qv2 qv1 qv2 )
qvabsqvabsrahidden( qv1 -- qv2 ) negate if qv1 -ve
qvcmpqvcmprahidden( qv1 qv2 -- qv1 qv2 n ) signum of diff. qv1-qv2
qv>dqv2dnrahidden( qv -- dn ) quad ranum signed to double int
qvdroundqvdroundrahidden( qv1 +qn -- qv2 ) approx. qv1 to doubles' range
qvdupqvduprahidden( qv -- qv qv ) duplicate quad ranum
qv>fqqv2qrahidden( qv -- qn ) quad ranum floored to quad int
qvfracqvfracrahidden( qv1 -- qv2 ) fractional component of qv1
qvintegerqvintegerrahiddenccc(C qv1 -- )(X -- qv ) quad ranum integer
qvliteralqvliteralrahidden( qv -- | qv ) quad ranum literal
qvm/qvmbyrahidden( qv1 dv2 -- qv3 ) quad ranum by double
qvnegateqvnegaterahidden( qv1 -- qv2 ) negate quad ranum qv1
qvoverqvoverrahidden( qv1 qv2 -- qv1 qv2 qv1 )
qvpickqvpickrahidden+/- pick quad ranum, re {8pick}
qv>qqv2qnrahidden( qv -- qn ) quad ranum signed to quad int
qvreduceqvreducerahidden( qv1 -- qv2 ) reduce quad ranum by g.c.d.
qvrollqvrollrahidden+/- roll quad ranum, re {8roll}
qvrotqvrotrahidden( qv1 qv2 qv3 -- qv2 qv3 qv1 ) 2 qvroll
qv-rotqvmrotrahidden( qv1 qv2 qv3 -- qv3 qv1 qv2 ) -2 qvroll
qvroundqvroundrahidden( qv1 +qn -- qv2 ) approximation to qv1
-qvroundmqvroundrahidden( qv1 +qn -- qv2 ) approx. qv1 to range of a double
qv^sqvpowsrahidden( qv1 n -- qv2 ) qv1 to the power of a sing
qv>sqv2nrahidden( qv -- n ) quad ranum signed to single int
qvsgnqvsgnrahidden( qv1 -- n ) signum of a quad
qvsoverqvsoverrahidden( qv1 qv2 -- qv2 qv1 qv2 ) swap and over
qvsplitqvsplitrahidden( qv1 -- qv2 qv3 ) integral qv2 and fractional qv3
qvsqrtqvsqrtrahidden( qv1 -- qv2 ) square root of a quad
qvswapqvswaprahidden( qv1 qv2 -- qv2 qv1 )
qv>uqv?qv2uqvqrahidden( qv -- uqv f ) |qv| and sign flag
sincos(qv)sincosqvrahidden( qv1 -- qv2 qv3 ) sinus qv2, cosinus qv3
sin(qv)sinqvrahidden( qv1 -- qv2 ) sinus
small?smallqrahidden( dv -- f ) tf if "normal"izeable
tg(qv)tgqvrahidden( qv1 -- qv2 ) tangens
ud>n?ud2nqrahidden( ud -- +n f ) tf if ud not in range of +ve sing
<#v#>ltvgtrahidden( v -- p u ) convert v to rational num stg
vdigits>vdigitsgtrahidden( -- un ) largest num w/ no. {digits} digits
<#vf#>ltvfgtrahidden( v -- p u ) convert v to floating pt num stg
v>uv?v2uvqrahidden( v -- +v f ) |v| and sign flag
10^dvpowdv10rational( dv1 -- dv2 ) dv1 to the power of ten
1/dvdvreciprational( dv1 -- dv2 ) abs(1 div by dv1)
1/vvreciprational( v1 -- v2 ) abs(1 div by v1)
acos(dv)acosdvrational( dv1 -- dv2 ) arcus cosinus
asin(dv)asindvrational( dv1 -- dv2 ) arcus sinus
atg(dv)atgdvrational( dv1 -- dv2 ) arcus tg
consraconsrationalrational-voc, all sizes' constants
cos(dv)cosdvrational( dv1 -- dv2 ) cosinus
d>dvd2dvrational( dn -- dv ) double int signed to double ranum
deg>raddeg2radrational( dv1 -- dv2 ) convert degrees to radians
df.dvdotfrational( dv -- ) display ranum in floating pt format
df#.dfdecdotrational( dv -- ) display ranum in floating pt format, decimal
df.jdvdotfjrational( dv left right -- ) justified disp. fp-ranum
#digitspdovalrationalmax displayed no. of ranum fractional digits
>doubletodoublerationalconvert stg to double number
#dvsharpdvrational( +dv -- 0 0 ) app stg to ranum output buf
dv^dvpowdvrational( dv1 dv2 -- dv3 ) double dv1 to the power of dv2
dv~dvaeqrational( dv1 dv2 -- f ) tf if dv1, dv2 approximately equal
dv<dvltrational( dv1 dv2 -- f ) tf if dv1 < dv2
dv=dveqrational( dv1 dv2 -- f ) tf if dv1, dv2 exactly equal
dv>dvgtrational( dv1 dv2 -- f ) tf if dv1 > dv2
dv-dvsubrational( dv1 dv2 -- dv3 ) diff.
dv!dvstorerational( dv p -- ) store ranum dv to memory at p
dv/dvbyrational( dv1 dv2 -- dv3 ) div doubles
dv.dvdotrational( dv -- ) display rational number
dv@dvfetchrational( p -- dv ) fetch ranum dv from memory at p
dv*dvmulrational( dv1 dv2 -- dv3 ) double ranum product
dv*/dvmulbyrational( dv1 dv2 dv3 -- dv4 ) mul dv1 by dv2 div by dv3
dv%dvvhrational( dv1 dv2 -- dv3 ) per 100
dv+dvplusrational( dv1 dv2 -- dv3 ) sum
dv+-dvpmrational( dv1 n -- dv2 ) negate if -ve n
dv0<dvzltrational( dv -- f ) tf if dv is -ve.
dv0=dvzeqrational( dv -- f ) tf if dv zero.
dv1-dvonemrational( dv1 -- dv2 ) subtract 1 from dv1
dv1+dvoneprational( dv1 -- dv2 ) add 1 to dv1
dv2/dv2divrational( dv1 -- dv2 ) dv2 <- dv1/2
dv2*dv2mulrational( dv1 -- dv2 ) dv2 <- dv1*2
dv2dupdv2duprational( dv1 dv2 -- dv1 dv2 dv1 dv2 )
dvabsdvabsrational( dv -- |dv| ) negate dv if -ve
dvcmpdvcmprational( dv1 dv2 -- dv1 dv2 n ) signum(dv1-dv2)
dvconstantdvconstantrational( -- dv ) non-alterable constant
dv>ddv2drational( dv -- dn ) dv to floored double int
dvdepthdvdepthrationalnumber of double ranum sized items on data-stack
dv>dndv2dnrational( dv1 -- dn ) dv to signed double int
dvdropdvdroprational( dv1 -- dv1 dv1 )
dvdupdvduprational( dv1 -- dv1 dv1 )
#dvfsharpdvfrational( +dv -- 0 0 ) app stg to float output buf
dv>floordv2floorrational( dv1 -- dv2 ) floored integral value
dvfracdvfracrational( dv -- dv ) fractional component of dv
dvfrounddvfroundrational( dv1 -- dv2 ) round for floating point stg
dv>ieeef2ieeerational( f1 -- d2 ) ranum to ieee format
dv>intdv2intrational( dv1 -- dv2 ) signed integral value
dvintegerdvintegerrational( -- dv ) constant, alterable before being cpl'd
dv.jdvdotjrational( left right dv -- ) justified disp. ranum
dvliteraldvliteralrational( dv -- | dv ) compile/interpret ranum as a dliteral
dvm/dvmbyrational( dv1 v2 -- dv3 ) div double by sing
dvm*dvmmulrational( dv1 dv2 -- qv3 ) quad ranum product
dvmaxdvmaxrational( dv1 dv2 -- dv3 ) the larger of dv1 and dv2.
dvmindvminrational( dv1 dv2 -- dv3 ) the smaller of dv1 and dv2.
dvnegatedvnegaterational( dv1 -- dv2 ) negate dv1
dvoverdvoverrational( dv1 dv2 -- dv1 dv2 dv1 )
dvoverflowdvoverflowrational( dv -- f ) tf if dv was overflow indicator value
dvpickdvpickrational( ... n -- ... dvn )
dv>qvdv2qvrational( dv1 -- qv2 ) expand double dv1 to quad qv2
dvrandomdvrandomrational( dv1 -- dv2 ) random number in range [0,dv1)
dvreducedvreducerational( dv1 -- dv2 ) reduce by greatest common divisor
dvrolldvrollrational( ... n -- ... dvn )
dvrotdvrotrational( dv1 dv2 dv3 -- dv2 dv3 dv1 )
dv-rotdvmrotrational( dv1 dv2 dv3 -- dv3 dv1 dv2 )
dvrounddvroundrational( dv1 +dn -- dv2 ) approximation to dv1
dv^sdvpowsrational( dv1 n -- dv2 ) dv1 to the power of a sing
dv>sdv2nrational( dv -- dn ) dv to signed sing
dvsgndvsgnrational( dv -- n ) signum
dvsimplifydvsimplifyrational( dv1 +dn -- dv2 ) approximation
dvsplitdvsplitrational( dv1 -- dv2 dv3 ) integral dv2 and fractional dv3
dvsqrtdvsqrtrational( dv1 -- dv2 ) square root of a double ranum
dvswapdvswaprational( dv1 dv2 -- dv2 dv1 )
dv>vdv2vrational( dv -- v ) convert double to sing ranum
dvvariabledvvariablerational( -- p ) 'ranum' (i.e. double) variable
e^dvepowdvrational( dv1 -- dv2 ) double e to the power of dv1
ENDfendrational( -- ) terminate FOR-loop at next NEXT
e^vepowvrational( v1 -- v2 ) v2 <- e^v1
f.vdotfrational( v -- ) display ranum in floating pt format
f.jvdotfjrational( left right v -- ) justified disp. fp-ranum
FORforrational( f1 -- ) begin a FOR .. NEXT loop
FROMfromrational( f1 -- ) modify FOT-loop start
+FROMpfromrational( f1 -- ) modify FOR-loop start and limit by disp
#froundpdovalrational-ve(dft) or no. of f.p. fractional digits
hiddenrahiddenrationalrational-voc, support and quad ranum
IDXfidxrational( -- f1 ) innermost level FOR-loop index
!IDXsidxrational( f1 -- ) store FOR-loop index
ieee>dvieee2frational( f1 -- d2 ) ieee to ranum format
INCfsteprational( -- f1 ) FOR-loop increment
!INCsincrational( f1 -- ) store FOR-loop increment
lg(dv)lgdvrational( dv1 -- dv2 ) double ranum log dec.
LIMflimrational( -- f1 ) FOR-loop limit
ln(dv)lndvrational( dv1 -- dv2 ) double ranum log naturalis
ln(qv)lnqvrational( qv1 -- qv2 ) log naturalis
NEXTnextrational( -- ) terminate a FOR .. NEXT loop
NXnxrational( n -- f1 ) n-th level FOR-loop index
@NXfnxrational( n -- p ) indext level ptr to FOR-loop ctrl. data
qv>dvqv2dvrational( qv -- dv ) reduce quad, truncate, ret double ranum
qv>vqv2vrational( qv -- v ) reduce quad, truncate, ret sing ranum
rad>degrad2degrational( dv1 -- dv2 ) convert radians to sexagesimal degrees
representfrepresentrational( dv p u -- n flg1 flg2 ) ranum normalized text repr.
s>dvs2dvrational( n -- dv ) sing int signed to double ranum
s>dvfactorials2dvfacrational( +n -- dv ) factorial of n
sincos(dv)sincosdvrational( dv1 -- dv2 dv3 ) sinus dv2, cosinus dv3
sin(dv)sindvrational( dv1 -- dv2 ) sinus
s>qvs2qvrational( n -- qv ) sing int signed to quad ranum
STEPsteprational( f1 -- ) modify FOR-loop increment
stg>qvtodfloatrationalconvert stg to quad ranum, i.e. double "float"
s>vs2vrational( n -- v ) signed sing to vulgar
s>vfactorials2vfacrational( +n -- v ) factorial of n
tg(dv)tgdvrational( dv1 -- dv2 ) tangens
truncationpdovalrationalsuppress trailing zeroes if non-zero(dft)
#vsharpvrational( +v -- 0 0 ) app stg to num output buf, for v.
v~vaeqrational( v1 v2 -- f ) tf if v1 approximately equal to v2.
v<vltrational( v1 v2 -- f ) tf if v1 less than v2.
v=veqrational( v1 v2 -- f ) tf if v1 exactly equal to v2.
v>vgtrational( v1 v2 -- f ) tf if v1 greater than v2.
v-vsubrational( v1 v2 -- v3 ) v1 minus v2.
v!vstorerational( v p -- ) store ranum v to memory at p
v/vbyrational( v1 v2 -- v3 ) quot of v1 divided by v2.
v.vdotrational( v -- ) display rational number
v@vfetchrational( p -- v ) fetch ranum v from memory at p
v*vmulrational( v1 v2 -- v3 ) product of v1 and v2.
v+vplusrational( v1 v2 -- v3 ) sum of v1 and v2.
v+-vpmrational( v1 n -- v2 ) negate if -ve n
v0<vzltrational( v -- f ) tf if v negative.
v0=vzeqrational( v -- f ) tf if v zero.
v1-vonemrational( v1 -- v2 ) v2 <- v1 - 1
v1+voneprational( v1 -- v2 ) v2 <- v1 + 1
v2/v2divrational( v1 -- v2 ) v2 <- v1/2
v2*v2mulrational( v1 -- v2 ) v2 <- v1*2
v2dupv2duprational( v1 v2 -- v1 v2 v1 v2 )
vabsvabsrational( v1 -- v2 ) negate if v1 -ve
vconstantvconstantrational( -- v ) non-alterable constant
vdropvdroprational( v1 -- v1 v1 )
vdupvduprational( v1 -- v1 v1 )
v>dvv2dvrational( v1 -- dv2 ) expand sing v1 to double dv2
#vfsharpvfrational( +v -- 0 0 ) app stg to num output buf, for f.
vfracvfracrational( v1 -- +v2 ) fractional component of v1
vintegervintegerrational( -- v ) constant, alterable before being cpl'd
v.jvdotjrational( left right v -- ) justified disp. ranum
vliteralvliteralrational( v -- | v ) compile/interpret ranum as a dliteral
vm*vmmulrational( v1 v2 -- dv ) double product of v1 and v2.
vmaxvmaxrational( v1 v2 -- v3 ) the larger of v1 and v2.
vminvminrational( v1 v2 -- v3 ) the smaller of v1 and v2.
v^nvpownrational( v n -- ) raise ranum to the power of sing
vnegatevnegaterational( v1 -- v2 ) v2 = -v1
vnormalvnormalrational( dv -- v ) approximate double to sing ranum
vovervoverrational( v1 v2 -- v1 v2 v1 )
voverflowvoverflowrational( v -- f ) tf if v was overflow indicator value
vpickvpickrational( ... n -- ... vn )
v>qvv2qvrational( v1 -- qv2 ) expand sing v1 to quad qv2
vreducevreducerational( v1 -- v2 ) normalize to prime components
vrollvrollrational( ... n -- ... vn )
vrotvrotrational( v1 v2 v3 -- v2 v3 v1 )
v-rotvmrotrational( v1 v2 v3 -- v3 v1 v2 )
vroundvroundrational( v1 +n -- v2 ) v2 is an approximation to v1
v>sv2srational( v -- n ) floored, integral component of v.
vsgnvsgnrational( v1 -- -1|0|1 ) unit of v1
vsimplifyvsimplifyrational( v1 +n -- v2 ) v2 is an approximation to v1
vsplitvsplitrational( v1 -- v2 v3 ) {v>s} & {vfrac}
vsqrtvsqrtrational( v1 -- v2 ) square root of a ranum
vswapvswaprational( v1 v2 -- v2 v1 )
vvariablevvariablerational( -- p ) 'ranum' (i.e. double) variable
-zeroesmzeroesrational( p u -- p u' ) trucate trailing zeroes
--slslrootactive initial args terminator, no-op
-->pdodeferroot-re- {load} next screen
.(commentprootprinting comment until next ")"
(parenrootin-active comment until next ")"
(*parenrootsynonym "(", comment until next ")"
[lbracrootdec cpl nesting level by one, interpret if < 1
[_]bcbrootsynonym [compile]/compile/POSTPONE
[,]bcompilecbrootimmediately compile from index
#!hbrootbegin scripting marker, synonym {include}
.\dotbslashrootprinting comment until <eol>
\bslashrootignore input until <eol>
\\quitrootignore input until <eof>
4th-idfthidrootinitial job-id
abortpdodeferrootdeferred {abort}
alsoalsorootpush vocs in search order one posn up
assemblerassemblerrootroot-voc, native code cpl. words
bigbigrootfetch next numeric input as a bignum
>bodytobodyrootptr to datafield by ix, for CREATEd words
byebyerootxit program w. 0 err code
c[clbracrootdec cpl nesting level by one, interpret if < 1
cdcdfrootchange cwd
cmc-offcmcoffrootdisable <call> to <jmp> conversion
compilercompilerrootroot-voc, cpl control
cpl?cplqroottf if permanently compiling
>datatodatarootptr to datafield by ix, wrt kernel-vari.
definitionsdefinitionsroot@current to ocurrent, @context to current
dfranumrootnext numeric input is double rational num, single float
EDITpdodeferrootthe screenfile editor, dft {[edit]}
[ELSE]belsebrootread input until [then] if flag to [if] was false
--env-ininooproota noop dummy, initially in search order
ENVIRONMENT?envirqroot( p u -- .xx. f ) ans-4th environment query
err-chanpdovalrootchannel number of error channel
errorerrorvrootvectored {error}, dft deferred {<error>}
<error>pdodeferrootdeferred, dft {[error]}
fltfltfrootset numeric input mode to double ranum
-fltmfltrootfalse(!) flag if double ranum input mode
forthforthrootroot-voc, main
forth-wordlistforthwlrootwid of {forth}
get-currentgcurrentroot@current
get-vocsgetvocsrootfetch all wid-s + count from voc-stack
helphelproothelp-text from glossary
--helpihelprootminimalistic help
hiddenhiddenrootroot-voc, used within other words
hvhvstackroot{help} mode modifier
idx>lfaidx2lfarootlfa from uot index
[IF]bifbrootread input until [else], discard till [then]
if-foundiffoundrootdiscard till eol if name not found
if-nfoundifnfoundrootdiscard till eol if name found
if-trueiftruerootdiscard till eol if false flag
immediateimmediaterootset latest word to immediately executing
in-chanpdovalrootchannel number of input channel
intintfrootreset from {flt} to integer numeric input mode
lc-ignorelcignorerootstg comparison in letter case independent mode
LC-IGNORElcignorerootstg comparison in letter case independent mode
lib4thlib4throotdisplay l4 cpl date
linuxlinuxrootroot-voc, host access
noopnooprootno action, just <ret>
no-optnooptrootmodify latest to not substituting end-ret w/ jump
o(ocommentprootcomment until next ")" if stdout is console
onlyonlyrootminimal wordset
orderorderrootdisplay vocabulary names as in search order
order?orderqrootitem no of stacked voc by ix, or -1
out-chanpdovalrootchannel number of output channel
prevdefprevdefrootrestore previous {current}
previouspreviousrootpop and discard context voc fron voc-stack
qfdoublerootnext numeric input is quad rational num, double float
quadquadrootfetch next numeric input as a quad integer
quitquitrootouter interpreter, exit from loadfiles
rationalrationalrootroot-voc, real numbers
real-userruserrootset process effective to real user id
rootrootrootbasic voc, essential words, linkage base
rsrsrootreset console to 'sane' state
rvocrvocrootrestore previous {context}
set-currentscurrentrootstore wid to {current}
set-ordersorderrootstore entire search order
set-vocssetvocsroot(re)store vocabulary ptrs at voc-stack
sfsingrootnext numeric input is single rational num
shshrootxec a shell command
sh|shprootxec shell cmd, pipe output to buf
ssss4rootfor #!-execution after exec. name
systemsystmrootroot-voc, hardware specific
[THEN]bthenbrootterminate conditional input sequence [if]...
tib>dfttib2dftrootreset t.i.b. to default location
tickticrootget current cpu clock count
unsmudgeunsmudgerootenable finding of latest word
vvaurootdisplay which wordlist a word is in
versversroot4 bytes numeric library version
versionversionrootdisplay l4-version
--versionsversionrootlibrary version
vocsvocsrootdisplay all def'd voc-names
wherewhererootshow error source, afte cpl error
x-ioxiorootexchange stdin,stdout,stderr w. in-chan &c.
ctag+ctagpsysteminc channel tag kernel vari, ret old.
pausecpausesystemenable re-scheduling of jobs from @(pause)
add-linkaddlinksystm( p1 p2 -- ) link p1 into list p2
b/bbbybsystmbits per byte (8)
cpuidcpuidfsystmcpu queries
--env-inif8inisystmevluate F8INI env vari
f8inif8inisystmevluate F8INI env vari
get-cpgetcpsystmget ptr into code space, where this word returns.
getrefgetrefbsystmrestore kernel reference
int-ptraceintptracesystmbreakpoint for lo-level debugging
mtlockmtlocksystmlock int's for block opr, enable ports access
mtunlockmtunlocksystmun-lock int's, disable ports access
novocnovocsystmsystem-voc, non-executeable, dummy names
[pause]bpausebsystmdft {pause}
pop4thpop4thsystm(R regs -- ) rst saved cpu-regs -re- {push4th}
push4thpush4thsystm(R -- regs ) save cpu regs used by L4 kernel
rdpmcrdpmcfsystm( -- d ) read perfromance monitoring counters
rmv-linkrmvlinksystm( p1 p2 -- ) unlink p1 from list p2
sh-argppdovarsystmshell command arguments ptr's
static?staticqsystmtf if prog statically linked
xlockxlocksystmexec word w. int's locked
adumpadumptoolsdump from true address
aliasaliastoolsdefining a synonymous word
bdumpbdumptoolsdump next, towards preceding addresses
#dcmhdcmtoolsdecompile at given ptr
dumpadumpatoolsdump at ptr, display true addr.
flgflgtools( -- n ) eflags, display w/ -re- {flg>smb}
flg>smbflg2smbtools( n -- p u )convert eflags bits to symbolic chars
ndumpndumptoolsdump next, towards ascending addr.
rdumprdumptoolsdump again, same range
.rsdotrstoolsdisplay returnstack content
[rs]dotrsitoolsimmediate {.rs}, displaying returnstack
snseetools8 times {#see}
[s]dotsitoolsimmediate {.s}, displaying datastack
#seehseetoolscontinue decompiling at @fld
tdumptdumptoolsdump, don't store ptrs
whichwhichtoolsdisplay path+file if in L4 path
a-closeacloseutilityclose channels 5 till end of table
[all-find]ballfindbutility{find} by counted stg trough all vocabularies
all-findallfindutility{find} trough all vocabularies
all-wordsallwordsutility{vlist} all vocabularies
d!pdodeferutility( n p -- ) deferred {!}
d!!pdodeferutility( p1 p2 -- ) deferred {!!}
d@pdodeferutility( p -- n ) deferred {@}
f8docf8docutilitypath to installed documentation files
(f8doc)pdovalutilityptr to default documentation dir
f8glof8gloutilityname of l4 glossary file
f8glsf8glsutility( -- p u ) path+name of l4 glossary file
(f8gls)pdovalutilityptr to default filename for {help}
(f8lib)pdovalutilityptr to default support library dir
precedespdodeferutility{ x1 x2 -- f ) {sort} relation
quickquickutilitysort datafield
seedpdovarutilityrandom, quad vari 'seed'
(selected)pdodeferutility{ .xx. -- .xx. ) {words} selection
[selected]pdodeferutility{ .xx. n lfa -- .xx. n lfa ) {words}
sortsortutilitytag sort array
sortedsortedutilitytag sort array by relation name
voc.vocdotutilityby lfa display which wordlist a word is in
wvocwvocutilityvocabulary link by lfa of a word
wvoc-rwvocrutility2ndary vocabulary link by lfa of a word
randomrandomutility;uu crea 0, {'random'}, random, utility ;
randomizerandomizeutility;uu crea 0, {'randomize'}, randomize, utility ;
abscurabscurvtcurs addr wrt top left of screen
<bel>lbelgvtascii ctrl code
bgpdovalvtbackground assignation
blackpdovalvtcolour value
bluepdovalvtcolour value
<bs>lbsgvtascii ctrl code
<can>lcangvtascii ctrl code
cdncdnvtcursor one row down
colcolvtget cursor column
colourvtcolourvtconsole display colour, attr, etc. (ECMA-48)
<cr>lcrgvtascii ctrl code
<csi>lcsigvtascii ctrl code
csrcsrvtset scrolling region
cupcupvtcursor one row up
cur-clftvtcursor one posn to the left
cur!cursvtsave cursor posn
cur@curfvtrestore cursor posn
cur+crgtvtcursor one posn to the right
curdcurdvtdisable cursor
curecurevtenable cursor
cyanpdovalvtcolour value
deldelvt<bs> and delete chr at cursor posn
<del>ldelgvtascii ctrl code
<esc>lescgvtascii ctrl code
ffffvtform feed, <nl> for console
<ff>lffgvtascii ctrl code
fgpdovalvtforeground assignation
g0g0vtcharacter set
[g0]pdovalvtlatest g0 character set selection
g1g1vtcharacter set
[g1]pdovalvtlatest g1 character set selection
greenpdovalvtcolour value
homehomevtcursor to top left
<ht>lhtgvtascii ctrl code
[i]pdovalvtlatest {ink} colour
inkvtinkvtset foreground colour/vt-mode
<lf>llfgvtascii ctrl code
magentapdovalvtcolour value
max-xmaxxvtmax console window width
max-xymaxxyvtconsole window size by count of chars
max-ymaxyvtmax console window height
mbpdo2valvtblink
mdpdo2valvtbold
mepdo2valvtreset all vt attributes
mrpdo2valvtreverse video
nonepdovalvtnoop argument
[p]pdovalvtlatest {paper} colour
papervtpapervtset background colour/vt-mode
[r]pdovalvtlatest reverse video state
redpdovalvtcolour value
relcurrelcurvtcurs addr wrt top left of scrolling region
reset-paletterstpalettevtrst console colours assignations from dft
revrevvtby flag set display to non-/reversed
rev-offrevoffvtstandard mode display
rev-onrevonvtdisplay at inverse video
rowrowvtget cursor row
sepdo2valvtnormal intensity
set-palettesetpalettevtassign a colour value
<si>lsigvtascii ctrl code
sopdo2valvthalf-bright
<so>lsogvtascii ctrl code
<sub>lsubgvtascii ctrl code
to-coltocolvtset cursor column
to-rowtorowvtset cursor row
uepdo2valvtunderline off
uspdo2valvtunderscore
<vt>lvtgvtascii ctrl code
vt0pdo2valvttop of console co-ordinates (-1 unset)
vt?csiwcsivtwait for <esc>[ or <csi> vt response
vt?escwescvtwait for <esc> response to vt query
!vtpvtspvtsend a vt... decimal parameter
@vtpvtfpvtfetch a vt... decimal parameter
vtstatepdovalvtcolour, fg/bg state of main window
vt!statevtsvtsave console state
vt@statevtfvtfetch latest saved console state
whitepdovalvtcolour value
yellowpdovalvtcolour value

by [ name | topic | voc ] [ glos | files | xref ] [ notation | dpans94 | syscalls ] [ bot | top ]