Comments
Loading Dream Comments...
You must be logged in to write a comment - Log In
The FBI is the Fundamental Buffer Interface, which runs in the datastore (SHE) and is called by the executive (ILA) to manipulate the store. It primarily consists of the following opcodes (all starting with FB hex) :
Specify ::> allocates a buffer and stores a variable (data item) in it. Uses a data name specified by the user, putting that name into the name table (the zeroeth element of the FBI). For example, "(3, 3) .ro. .io. 9 ::> X" places a two-by-two array (1 2 3)(4 5 6)(7 8 9) into new variable X.
Push << and Pop > have two flavours : pushing to the front (<) or end (<<), and popping from the front (>) or end (>>), rather like C++'s insert and extract operators.
Length (#) gets the number of elements in the named buffer (not including nested elements, for example #X would have the value (3 3), and ##X would be 2 (the rank of the array).
Query (?) causes the current thread to wait while the named buffer is empty, for example wait for a keypress or mouse move to occur. This is useful in an event block (see "Code Blocks").
Instantiate -::> creates a new instance of a class, based upon the base template ("class factory") supplied. (For example BASECLASS -::> MYCLASS). It may also be written as ::-> .
There are other FBI operations (such as output formatting, similar to printf() ) but that's it for now :)