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

lib4th 1-1-4+18 Annotations Glossary

Latest library source -re- lib4th homepage.

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


 Nomina
 ------

 annotations:

	(n.i.)
		(yet) not implemented
	-?-
		points to something which the author isn't certain about and, 
		whereupon any help would be very welcome: pse, mailto:l4@lxhp.in-berlin.de
	( n1 :=	n2 )
		n2 assigned to n1 (new value of n1 is n2)
	( n1 = n2 )
		n1 equal to n2
	( n1 == n2 )
		n1 and n2 identical (same value, same storage place)
	( n1 =/= n2 )
		n1 not equal n2
	( n1 >/ n2 )
		n1 signed greater than or equal to n2
	( n1 \< n2 )
		n1 signed smaller than or equal to n2
	@name
		content at address/variable {name}
	{name}
		Forth words in this text(s) are noted between braces
	{?name}
		abort if some test not passed
	{name?}
		ret true flag if some test was successful.
	<name>
		assembly source label, lib4th internal access, only.
	does{ ... }
		hi-level aequivalent to described action of a word.
	hi-level word
		specific to lib4th is a subroutine call by indexed uot-ref. or,
		by pc-relative subroutine call, where the latter applies if the 
		rsp. call can be replaced by an indexed uot call, w/o. further 
		adjustment.
	immediacy
		A Forth word is 'immediate' if it executes whatever semantics is 
		defined for the actual "state", immediately after being found in 
		the input strem, regardless of whether the system is in compiling 
		or in interpreting state. Immediacy can temporarily be suppressed 
		for a single word, e.g. w. {postpone}.
	lo-level, "primitive" word
		specific to lib4th is a word programmed w. directly executeable 
		processor operations instead of subroutine calls to 4th words.
	letter case
		is consistent within words, i.e. never mixed!
		library supplied words are lower case, with the exception
		of those required to switching back from upper case and, the group
		of ANS defined environmentas queries and query strings.
		Initial input state is case independency, thus any Standard ANS 
		Forth Program can be compiled w/o. modifications, to this respect.
	nos
		address of next item on datastack
	ovf
		"owerflow".
	primitive word
		re "lo-level", above.
	smudged
		words cannnot be found w. the usual means, e.g. {find};
		the Forth word {smudge} toggles this state.
	stack
		"last in - first out" memory access method by a single pointer.
		Access no other than by the self maintaining "stack pointer".
		"top" of a stack is 1st accessible item, regardless of stack's 
		direction of growth. Stack "bottom" is address of empty stack.
	tor
		address of top of returnstack
	tos
		refers to address of top of datastack
	@tos
		item (cell) at tos - which in lib4th is content of register eax
	use{ .. }
		short application example.

 words origin

	(4)
		hi-level word (4th subroutine calls vs direct op coding)
		those words can also serve as assembly level application 
		programming examples.
	(79)
		79-FORTH word
	(83)
		FORTH-83 word
	(a)
		ANS-4th word, as described in DPANS94 standard draft,
		e.g,
			(a:c)	core
		appended 'x' is the rsp extension wordset
			(a:cx)	core ext
		re above, "Wordsets", for other abbreviations.
	(f6)
		non-standard word, taken from f6 (for the 680xx)
	(f8)
		non-standard word, new w/ lib4th/F8.
	(fg)
		word from f.i.g. model forth (pre-79 'standard').
	(h4)
		Skywave's real-time multitasking Forth for the Z80.
	(l4)
		lib4th specific
	(w3)
		Win32Forth (several "Windows" variants)
	

 words cathegories

	(c)
		constant (32bit) value

	(C)
		'compile only' restriction
	(e)
		word whereafter in compiled code {flg} can be used to 
		read eflags reflecting the current operation's result.
	(i)
		immediate(ly executing) word, which regardless of @state
		always executes.
	(ix)
		special interpreter word, not being compiled, immediate.
	(k)
		a (currently) headerless word, in library only. Meant for
		kernel only access - insert wordheader to "lib4words.inc" 
		for common accessiblity.
	(kv)
		a "value" defined in L4 kernel, {to} applicable.
	(m)
		"macro": optionally compiles expanded inline code. (n.i.)
	(r)
		kernel word w/ args passed by reg or by reg ref other than @tos
	(s)
		word accessing a linux system call; ((s)) secondary call.
	(u) or (uninitiated)
		lo-level subroutine, can be run after fatal errors
		or before system fully initiated, i.e. not relying 
		on pointers into user-vari or on kernel reference.
	(v)
		vectored word/data
		can be re-defined, e.g. { ' .s idx>xec 4th>abs (ok) ! }
	(w)
		word which in interpreting mode executes directly.
		(as {bye}, {create}, {evaluate}; currently no other such words)
	(x), ((x))
		word using one or more of mmx register(s) mm0..mm3,
		((x)) secondary call. those words co-exist w/o mmx regs useage in 
		{non-mmx} vocabulary, which automatically replace the mmx-ones if
		__MMX compile switch in <Makefile> defined. 
		mm4..mm7 unused by L4, left to user routines.
	(X), ((X))
		words the non-mmx alternatives of which should be activated by the 
		rsp. compile-switch, at <make> time. they are not accessible as an
		alternative, explicitely, if the mmx-variant exists (was cpl'd).

 memory:

	au, address unit
		consecutive group of consecutively addressable bits.
	byte
		no. of bits per address unit, dft = 8
	byte order
		little endian, inconsistent use of big-endian cells order (but little 
		endian bytes) in {ans-vocabulary, for standard compliance.
		no other words un-supposedly operate on big-endian byte/cells order.
	data items
		cells (re below), unless stated
	section, segment
		a contiguous memory section of equal assets

 types:
 data-types by virtue, i.e. Forth does not implement inherent data typing.
 (Most?) Forth programmers rely on the power of the conscious mind...

	a
		true address (virtual, specific to the particular Linux job)
	c
		a single character, dft = one 8-bit byte
	ch
		"channel" number, index into "channel definition table" (cdt).
	ccc
		string of characters
	cell
		group of little endian ordered 4 bytes
	d
		signed double
	df
		double floating pt number, by quad ranum, -re- "qv", "ranum".
	double
		signed integer value represented by two 
		consecutive cells, little endian, m.s. cell @tos
	dv
		double ranum, a pair of doubles, numerator and denominator.
	false
		cell of all unset bits
	fd
		Linux file descriptor, a "channel identifier", for internal use, 
		only. standard i/o access w/ ref to "channel" numbers and {ch-id}.
	ff
		condition not met flag (single int 0)
		(simplistic "logic" describes this as the {false} flag)
	fp, f1, f2...
		floating point number, represented by a double ranum
		(double f.p.-s represented by quad ranum) -re- "dv", "ranum".
	f, flg
		flag, any value or sequence of bits, fitting into one cell
	tf
		condition met flag (single int -1)
		(simplistic, binary "logic" describes this as the {true} flag)
	n
		signed single
	.n1..nn N
	.n.N
		counted, multi-cells sized integer ("bignum")
	o
		octet, eight cells item, may also represent a quad ranum
	p
		forth ptr, rel kernel reference (i.e, p is disp to KR = ebx)
	..q
		quotient of an arithm. division
	quad
		signed integer value represented by four 
		consecutive cells, little endian, m.s. cell @tos
	qv
		quad ranum, a pair of quads, numerator and denominator.
	..r
		remainder of an arithm. division
	ranum
		rational (or "real") number, represented by pairs of sings, 
		doubles or quads, interpretted as an (improper) fraction.
		-re- {rational} vocabulary for further description.
	sing
		signed integer value represented by one cell
	s
		system control item, two cells on compilestack (i.e. datastack)
	true
		cell of all set bits (though not optimal for i386)
	u
		unsigned sing
	ud
		unsigned double
	v
		sing ranum, pair of integers, numerator(@nos) denominator(@tos).
	..xx..
		data on respective stack depend on word(s) execution

	
 Glossary notation
 -----------------

 wordname	stack(s)		source		callname	wordlist
	comment...
 
 wordname	the name by which the Forth word will be found.
 stack 	the word's data flow on stack(s):
			( before -- after )
		if word scans for a string <ccc> following in input stream:
			ccc( before -- after)
		data flow on return-stack:
			(R: before -- after)
		on compile-stack:
			(C: before -- after)
		data-stack when interpreting 'immediate's:
			(X: before -- after )
 source 	the word's semantics origin, or original description, plus
		'immediacy' and other properties specific to the particular word.
 callname	library symbol by which the word accessible at lo-level i.e.
		in assembly or, from other programs which call the library.
		callname is wordname if not explicitely given.
 wordlist	to which the word belongs.
 comment	(obvious...)
		"xec:" comment applies to executing state,
		"cpl:" comment applies to compiling state.

	

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