"ARGS" is a value word that holds a pointer to the command line data
block which consists of a count cell followed by that many asciiz
-pointers and then a 0 cell.
+pointers and then a 0 cell. That is next followed by the environment
+as a number of asciiz pointers and a 0 cell.
====
.the command line argument block
----
ARGS -> 8 bytes: count of non-zero asciiz pointers following
8 bytes: command name string
- 8 bytes: first argument string
- 8* ...
- 8 zero
+ 8* bytes: argument strings
+ 8 bytes: zero cell
+ 8* bytes: envirnment strings
+ 8 bytes: zero cell
----
====
--- /dev/null
+// stack.asm: WORD p_dsp, 'D[n]',fasm
+
+anchor:p_dsp[]
+
+=== Word: D[n]
+
+....
+Data stack: ( n -- a )
+....
+
+"D[n]" is a function word that pushes the address for the n:th cell of
+the data stack onto the data stack.
+
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.
+"R[n]" is a function word that pushes the address for the n:th cell of
+the return stack onto the data stack.
====
.Defintion concept for R[n]
--- /dev/null
+// stdio.asm: WORD p_read_stream_line,'READ-STREAM-LINE'
+
+anchor:p_read_stream_line[]
+
+=== Word: READ-STREAM-LINE
+
+....
+Data stack: ( stream -- n )
+....
+
+"READ-STREAM-LINE" is a function word that gets the next line from the
+given stream buffer into PAD and returns number of characters. If the
+stream is backed by a file descriptor, the stream buffer is refilled
+from there as needed, by a SYS_READ call when more characters are
+needed.
include::separator.adoc[]
include::adoc/p_Dcomma.adoc[]
include::separator.adoc[]
+include::adoc/p_dsp.adoc[]
+include::separator.adoc[]
include::adoc/p_cfa2tfa.adoc[]
include::separator.adoc[]
include::adoc/p_Cget.adoc[]
include::separator.adoc[]
include::adoc/p_read_stream_char.adoc[]
include::separator.adoc[]
+include::adoc/p_read_stream_line.adoc[]
+include::separator.adoc[]
include::adoc/p_read_word.adoc[]
include::separator.adoc[]
include::adoc/p_realloc.adoc[]
xref:p_Rget[R@] {nbsp}
xref:p_Rgt[R>] {nbsp}
<<p_rbpn,R[n]>> {nbsp}
+<<p_dsp,D[n]>> {nbsp}
xref:data_stack[DATA-STACK] {nbsp}
xref:return_stack[RETURN-STACK] {nbsp}
xref:p_quit[QUIT] {nbsp}
xref:p_read_stream_char[READ-STREAM-CHAR] {nbsp}
+xref:p_read_stream_char[READ-STREAM-LINE] {nbsp}
xref:p_read_word[READ-WORD] {nbsp}
xref:p_realloc[REALLOC] {nbsp}
xref:p_return[RETURN] {nbsp}