Requires v7.0.7.3+ -- ONLY Posix + ESP32
cp ( "src" "dst" -- ) Copy "src" file to "dst". mv ( "src" "dst" -- ) Rename "src" file to "dst". rm ( "path" -- ) Remove "path" file. touch ( "path" -- ) Create "path" file if it doesn't exist. cat ( "path" -- ) Print contents of "path" file. ls ( "path" -- ) List files or directories in "path".
Requires v7.0.7.3+ -- ONLY Posix
cd ( "path" -- ) Change director to "path". mkdir ( "path" -- ) Create directory "path". rmdir ( "path" -- ) Remove directory "path". pwd ( -- ) Print current directory.
Requires v7.0.7.2+
VISUAL EDIT ( "path" --) Enters a visual editor opening file "path".
NOTE: On ESP32 requires connection over an ANSI serial terminal like Putty.
LIMITATIONS: Terminal doesn't know screen dimensions
and is very redraw inefficient.
Keys:
Ctrl-S -- Save now.
Ctrl-X / Ctrl-Q -- Quit, asking Y/N to save.
Ctrl-L -- Redraw the screen.
Backspace -- Delete a character backwards.
Arrow Keys -- Movement.
PgUp/PgDn -- Scroll up/down a page.
USE ( "name" -- ) Use "name" as the blockfile, e.g. USE /spiffs/foo OPEN-BLOCKS ( a n -- ) Open a file as the block file LOAD ( n -- ) Evaluate a block THRU ( a b -- ) Load blocks a thru b LIST ( n -- ) List a block BLOCK ( n -- a ) Get a 1024 byte block BUFFER ( n -- a ) Get a 1024 byte block without regard to old contents UPDATE ( -- ) Mark the last block modified FLUSH ( -- ) Save and empty all buffers EMPTY-BUFFERS ( -- ) Empty all buffers SAVE-BUFFERS ( -- ) Save all buffers SCR ( -- a ) Pointer to last listed block
EDITOR vocabulary.
Note the block editor places newlines in the 63rd column of each line
to make the block file readable in a text editor.
WIPE ( -- ) Blank out the current block L ( -- ) List the current block D ( n -- ) Delete a line in the current block E ( n -- ) Clear a line in the current block R ( n "text" -- ) Replace a line in the current block A ( n "text" -- ) Add (insert) a line in the current block P ( -- ) Move to the previous block N ( -- ) Move to the next block
Requires v7.0.7.2+ for UDP
These words are available inside thesockets vocabulary.
socket ( domain type protocol -- sock/err ) setsockopt ( sock level optname optval optlen -- 0/err ) bind ( sock addr addrlen -- 0/err ) listen ( sock connections -- 0/err ) sockaccept ( sock addr addrlen -- sock/err ) -- varies from bsd socks connect ( sock addr addrlen -- 0/err ) select ( numfds readfds writefds errfds timeout -- fd/err ) poll ( pollfds n timeout -- fd/err ) send ( sock a n flags -- n/err ) sendto ( sock a n flags addr addrlen -- n/err ) sendmsg ( sock msg flags -- n/err ) recv ( sock a n flags -- n/err ) recvfrom ( sock a n flags addr addrlen -- n/err ) recvmsg ( sock msg flags -- n/err ) gethostbyname ( hostnamez -- hostent/0 ) errno ( -- err ) -- ESP32 only as of v7.0.7.2 sockaddr ( "name" -- ) creates a sockaddr structure ->port@ ( a -- n ) get port from sockaddr ->port! ( n a -- ) set port in sockaddr ->addr@ ( a -- n ) get big-endian address from sockaddr ->addr! ( n a -- ) set big-endian address in sockaddr ip. ( n -- ) Print address as x.y.z.w IP address. ( Constants ) SOCK_STREAM SOCK_DGRAM SOCK_RAW AF_INET sizeof(sockaddr_in) SOL_SOCKET SO_REUSEADDR
WARNING: Danger ahead.
Snapshotting the dictionary may not be stable across reinstallations of the C build of Forth.
A collection of non-standard words is provided that allow snapshotting the dictionary and restoring it at startup, with a start word.
SAVE ( "name" -- ) Saves a snapshot of the current dictionary to a file.
RESTORE ( "name" -- ) Restore a snapshot from a file.
REMEMBER ( -- ) Save a snapshot to the default file
(./myforth or /spiffs/myforth on ESP32).
STARTUP: ( "name" -- ) Save a snapshot to the default file arranging for
"name" to be run on startup.
REVIVE ( -- ) Restore the default filename.
RESET ( -- ) Delete the default filename.
Here's an example usage:
: welcome ." Hello!" cr 100 0 do i . loop cr ; startup: welcome bye ( Next boot will run a custom startup message ) reset ( Reset removes the custom message )
The INTERNALS vocabulary has some additional words
for more control.
SAVE-NAME ( a n -- ) Save a snapshot if the current vocabulary to a file.
RESTORE-NAME ( a n -- ) Restore a snapshot from a file.
'COLD ( -- a ) Address of the word that will be run on startup.
REMEMBER-FILENAME ( -- a n ) Deferred word specifying the platform specific
default snapshot filename.