X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=reference.html;h=988e55177cc3476fd286dc94d7b0324a2893bef9;hb=12f5c95467140afef0635e1b0d3f283684db028d;hp=e07df55fc602666ca9823713d05b0677b8251d12;hpb=9b8fcf87eaed58b6dfabcf885f8eef5484643de6;p=rrq%2Frrqforth.git diff --git a/reference.html b/reference.html index e07df55..988e551 100644 --- a/reference.html +++ b/reference.html @@ -780,7 +780,7 @@ asciidoc.install(); >R   R@   R>   -R[n]  

+R[n]  

DATA-STACK   RETURN-STACK     @@ -793,6 +793,7 @@ asciidoc.install(); 2OVER   2SWAP  

ABS   +AGAIN   ALLOT   AND   [ASM]  

@@ -800,10 +801,12 @@ asciidoc.install(); BEGIN   BREAK  

CFA>FLAGS@   +CFA>TFA   CLEAR-STREAM   CREATE   CURRENT-WORDLIST  

DECIMAL   +DEFINITIONS   DEPTH   DIGITS   /MOD   @@ -825,6 +828,8 @@ asciidoc.install(); EXECUTE   EXIT  

FALSE   +FDEMIT   +FDTELL   FIND   FORTH  

HERE   @@ -832,9 +837,11 @@ asciidoc.install();

IF   IFAGAIN   IFBREAK   -IMMEDIATE  

+IMMEDIATE   +INPUT  

LIT   -LOAD-FILE"  

+LOAD-BUFFER-SIZE   +LOAD-FILE  

MAIN-ARGS   MALLOC  

NEGATE   @@ -842,7 +849,7 @@ asciidoc.install(); NL   NOT   NUMBER  

-

OPEN-FILE"   +

OPEN-FILE   OR   OVER  

PAD   @@ -852,8 +859,10 @@ asciidoc.install();

+ROT   +RSP  

SP   STATE   STDIN   @@ -865,6 +874,7 @@ asciidoc.install(); SWAP   SYSTEM  

TELL   +.TEMP   TERMINATE0   TFA>CFA   TFA>DFA   @@ -874,6 +884,8 @@ asciidoc.install(); THIS-WORD   TRUE   TUCK  

+

UNSTREAM   +USE  

VERBOSE?  

WITHIN   WORDS  

@@ -1126,6 +1138,26 @@ at the current free head address, which also is incremented.

_______________________________________________________
+

+ +
+

Word: CFA>TFA

+
+
+
Data stack: ( cfa -- tfa )
+
+

"CFA>TFA" is a function word that pushes word tfa of the given cfa.

+
+
+
+
+
Definition concept for CFA>TFA
+

: CFA>TFA 14 - @ ;

+
+
+
+_______________________________________________________ +

@@ -1190,6 +1222,23 @@ value. To that end, the values are 64-bit signed integers.

_______________________________________________________
+

+ +
+

Word: AGAIN

+
+
+
Data stack: Compiling: ( -- a )
+
+

"AGAIN" is an immediate function word that is used together with +BEGIN and instead of END to implement structured +execution control. AGAIN scans the datastack for the nearest preceding +BEGIN marker and lays out an unconditional branch from this point the +beginning of the block during execution. It thereafter performs the +END compile action to end the block.

+
+_______________________________________________________ +

@@ -1374,6 +1423,7 @@ resolution address just above the required 0 on the data stack.

: WORDS ( wordlist -- ; Print all words of word list ) BEGIN @ DUP IF DUP WTELL ELSE BREAK THEN + 1 IFAGAIN END DROP NL EMIT @@ -1608,6 +1658,27 @@ _______________________________________________________
_______________________________________________________
+

+ +
+

Word: DEFINITIONS

+
+
+
Data stack: ( wordlist -- )
+
+

"DEFINITIONS" is a function word that installs the given wordlist as +the CURRENT-WORDLIST one.

+
+
+
+
+
Definition concept for DEFINITIONS
+

: DEFINITIONS CURRENT-WORDLIST ! ;

+
+
+
+_______________________________________________________ +

@@ -1823,6 +1894,23 @@ the current BASE (either DECIMAL
_______________________________________________________
+

+
+
+

Word: .TEMP

+
+
+
Data stack: ( v -- char* n )
+
+

".TEMP" is a function word that renders a cell value as an integer +using the current BASE, which is either +DECIMAL or HEX. In DECIMAL +BASE, a negative value is rendered as such with a leading +minus sign, whereas HEX BASE rendering is +unsigned.

+
+_______________________________________________________ +

@@ -2069,11 +2157,10 @@ _______________________________________________________

Word: EXIT

-
Data stack: ( -- )
+
Data stack: ( v -- )
-

"EXIT" is a function word that implements the ending of a FORTH -definition and its threading to the subsequent step of the calling -definition.

+

"EXIT" is a function word that terminates the rrqforth process +immediately with the given exit code.

_______________________________________________________
@@ -2089,6 +2176,33 @@ _______________________________________________________
_______________________________________________________
+

+
+
+

Word: FDEMIT

+
+
+
Data stack: ( c fd -- )
+
+

"FDEMIT" is a function word that puts the given character code to the +given file descriptor. The character is the least significant byte of +the data stack cell.

+
+_______________________________________________________ +
+

+
+
+

Word: FDTELL

+
+
+
Data stack: ( char* n fd -- )
+
+

"FDTELL" is a function word that prints a string to the given file +descriptor.

+
+_______________________________________________________ +

@@ -2337,6 +2451,19 @@ the most recent word to 1, thereby making that word an immediate word.

_______________________________________________________
+

+ +
+

Word: INPUT

+
+
+
Data stack: ( -- a )
+
+

"INPUT" is a variable word for the input stream buffer used by +EVALUATE-STREAM.

+
+_______________________________________________________ +

@@ -2434,19 +2561,35 @@ similar to LIT but for a string literal.

_______________________________________________________
-

+

+ +
+

Word: LOAD-BUFFER-SIZE

+
+
+
data stack: ( -- a )
+
+

"LOAD-BUFFER-SIZE" is a variable word telling the buffer size in bytes +that LOAD-FILE should use.

+
+_______________________________________________________ +
+

-

Word: LOAD-FILE"

+

Word: LOAD-FILE

-
data stack: ( "name" -- )
+
data stack: ( chaz* -- * 0/1 )
-

"LOAD-FILE"" is a function word that opens a file via -OPEN-FILE", allocates a stream buffer of 15000 -bytes for reading it, saves the stream pointer as value for the newly -created filename variable, and then it invokes -EVALUATE-STREAM for processing the file.

+

"LOAD-FILE" is a function word that evaluates a text file. It opens a +file via OPEN-FILE and sets up a stream with a +buffer of LOAD-BUFFER-SIZE bytes for +reading it. The stream is passed to +EVALUATE-STREAM for processing its words. Upon +its return the file is closed and the stream memory is reclaimed, and +then the function returns whatever +EVALUATE-STREAM returns.

_______________________________________________________
@@ -2593,17 +2736,17 @@ integers.

_______________________________________________________
-

+

-

Word: OPEN-FILE"

+

Word: OPEN-FILE

-
Data stack: ( "name" -- fd )
+
Data stack: ( chaz* -- fd )
-

"OPEN-FILE"" is a function word that reads the intputstream for a -filename, adds that to the dictionary as a no-content variable, opens -that file and returns the input file descriptor.

+

"OPEN-FILE" is a function word that opens the file named by the zero +terminated character string and returns the file descriptor, or if +less than 0, the system call error code.

_______________________________________________________
@@ -2748,6 +2891,40 @@ word on the input stream and pushes its cfa.

_______________________________________________________
+

+ +
+

Word: RSP

+
+
+
Data stack: ( -- a )
+
+

"RSP" is a function word that pushes the return stack pointer value +onto the data stack.

+
+_______________________________________________________ +
+

+
+
+

Word: R[n]

+
+
+
Data stack: ( n -- a )
+
+

"R[n]" is a function word that pushes the address for the n:th cell on +the top return stack value onto the data stack.

+
+
+
+
+
Defintion concept for R[n]
+

( n — a ) : R[n] 8 * RSP + ;

+
+
+
+_______________________________________________________ +

@@ -2779,6 +2956,18 @@ separated word from the given stream and returns the [n:char*] duoble cell pointer for it. The characters of the word are copied to PAD, and there is a limit of 1024 characters.

At the end of the stream READ-WORD returns 0 length.

+
+
Special syntax 1: Whitespace
+
+

All character codes less or equal to 32 are regarded as "whitespace".

+
+
+
Special syntax 2: Rest-of-line comment
+
+

The "#" character following whitespace starts a line comment and the +rest of the line is ignored. Note that this is also recognised with +parethesis commenting.

+
_______________________________________________________
@@ -2800,6 +2989,20 @@ kernel, and the granularity is in pages, i.e. a multiple of 4 kb.

_______________________________________________________
+

+ +
+

Word: RETURN

+
+
+
Data stack: ( -- )
+
+

"RETURN" is a function word that implements the ending of a FORTH +definition and make execution return to the next step in the calling +definition.

+
+_______________________________________________________ +

compile.asm: WORD p_right_bracket,],fasm

@@ -2859,19 +3062,6 @@ and the first becomes the second.

_______________________________________________________
-

- -
-

Word: R[n]

-
-
-
Data stack: ( n -- a )
-
-

"R[n]" is a function word that pushes the address for the n:th cell on -the top return stack value onto the data stack.

-
-_______________________________________________________ -

@@ -3305,6 +3495,48 @@ values are unequal, and 0 otherwise.

_______________________________________________________
+

+ +
+

Word: UNSTREAM

+
+
+
Data stack: ( stream* -- )
+
+

"UNSTREAM" is a function word that releases the memory allocated for a +stream, and closes the associated file if it’s a file stream.

+
+

File descriptor backed stream

+

This kind of stream has the stream header as a prefix within the +allocated memory. Thus, stream* is the base address for the memory to +reclaim, and the size of this is determined from the cell at (stream* ++ 16) plus the 32 bytes head itself.

+
+
+

Memory block backed STREAM

+

This kind of stream has a separate header which points at the memory +area to reclaim. The cell at stream* is the base address, and the cell +at (stream* + 16) is its size.

+
+_______________________________________________________ +
+

+
+
+
+

Word: USE

+
+
+
Data value: ( wordlist -- )  Input stream: word
+
+

"USE" is a function word that looks up next word given the wordlist. +It reads next word on INPUT via READ-WORD, +then temporarily changes CURRENT-WORDLIST to +FIND the word via the given wordlist, and returns the TFA +of that word, or just 0 if the word coudn’t be found.

+
+_______________________________________________________ +

@@ -3396,7 +3628,7 @@ is deepest.