summaryrefslogtreecommitdiffstats
path: root/sys/boot/ficl/words.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix typos, mostly s/ an / a / where appropriate and a few s/an/and/schweikh2002-12-301-1/+1
| | | | Add FreeBSD Id tag where missing.
* Make ficl work on sparc64. The assumption that int == long == void * isscottl2002-08-311-8/+8
| | | | | | | | | very pervasive in this code. This fixes a few of those assumptions and band-aids over some others. Tested on: ia32 alpha sparc64 Reviewed by: peter jake (in concept)
* Upgrade to FICL version 3.02. Anything wrong is my fault, everything right isdcs2002-04-091-629/+945
| | | | | | | | due Jon Mini. PR: 36308 Submitted by: Jon Mini <mini@haikugeek.com> MFC after: 4 weeks
* Avoid an alignment fault on 64bit architectures.dfr2001-09-041-1/+1
| | | | Reviewed by: dcs
* As in with ":", check dictionary space and increase it if necessary beforedcs2001-05-271-0/+2
| | | | "create".
* FICL 2.05 has a flawed definition of BASE. Fix it.dcs2001-05-101-1/+1
| | | | Spotted by: Peter Jeremy <peter.jeremy@alcatel.com.au>
* Bring in ficl 2.05.dcs2001-04-291-1336/+924
| | | | | | | This version has a step debugger, which now completely replaces the old trace feature. Also, we moved all of the FreeBSD-specific MI code to loader.c, reducing the diff between this and the official FICL distribution.
* Only build PnP parts if the platform supports PnP.dfr2000-09-101-0/+2
|
* Add the infrastructure necessary to handle PnP from a Forth script.dcs2000-09-081-0/+4
| | | | | | Also, export the file_findfile() function. Again, this is taken from work in progress but frozen for the time being. Since it works, I'd rather commit and remove any uglyness later than hide it on my tree.
* Fix REFILL. It must throw RESTART instead of OUTOFTEXT so thatdcs2000-06-121-2/+27
| | | | | | | execution can take place at the point where it stopped after the input buffer has been refilled. Add ANS Forth CORE EXT and FILE word SOURCE-ID.
* Add setenv, getenv, setenv?, unsetenv, copyin and copyout to FICL.dcs2000-06-071-0/+6
|
* Apply a number of fixes for the Alpha platform.dcs2000-06-021-1/+1
|
* Add "int" sized manipulation words.dcs2000-06-011-4/+27
|
* Bring in FICL 2.04. No bump of loader version is required by thisdcs2000-05-261-129/+243
| | | | commit.
* Lay the groundwork for on-demand dictionary expansion.dcs2000-05-051-1/+16
|
* Add heap?, so we can tell how much free space we have left.dcs2000-05-041-0/+9
|
* (Hopefully) make all necessary changes for ficl to support alpha.dcs1999-11-231-1/+1
|
* Bring in ficl version 2.03. No version bump for loader.dcs1999-09-291-446/+485
|
* Remove dictHashSummary internal function; it used doubles.jkh1999-02-091-1/+0
| | | | Submitted by: Daniel C. Sobral <dcs@newsguy.com>
* The previous fix for "type" was absolutely lousy. Not only the bufferdcs1999-02-041-2/+2
| | | | | | | | allocated was not big enough, but it ended up to being used where it was supposed to be used. The person who did that ought to be shot, but since I'm a good person, I'll forgive myself... PR: bin/9743
* From the PR:msmith1999-01-241-6/+51
| | | | | | | | | | | | | | | | I added a FICL_TRACE-conditioned trace facility based on "see". It is ugly because words' functions are almost all static, and ficlExec, where the trace has to be located, can't get their pointers. So, #ifdef this staticization, and add most of see's body into ficlExec. Duplication of code, uglyness, etc. But it is cleanly #ifdef'ed, and works like a charm. It does not provide "step" facility, though, just trace. It is tunable at run-time through "trace!". If anyone (most likely me :) ever wants a step facility, I'll add it. Should be easy. PR: bin/9652 Submitted by: "Daniel C. Sobral" <dcs@newsguy.com>
* From the PR:msmith1999-01-241-11/+7
| | | | | | | | | | | | | FICL's TYPE copies the counted string to HERE, as abial has remarked. Answering to abial's question, this is NOT garanteed to have enough space. ... We have dynamic memory. Even before memory-alloc got in, we already had dynamic memory. Use it, then! (ficlMalloc is sysdep, so I suppose that's why it was not used for TYPE; ficl is probably designed to work without a working ficlFree). Submitted by: "Daniel C. Sobral" <dcs@newsguy.com>
* Add EXCEPTION word set.msmith1999-01-221-23/+239
| | | | | | | | | | | Make TIB handling use buffer size to conform with ANS Forth. Add ANS MEMORY-ALLOC word set. See the PRs for extensive details. PR: kern/9412 kern/9442 kern/9514 Submitted by: PRs from Daniel Sobral <dcs@newsguy.com>
* Change counter-intuitive pc@ and pc! to inb and outb.abial1999-01-141-2/+4
| | | | Submitted by: jkh
* Add words "pc!" and "pc@" which allow to manipulate I/O ports. This canabial1999-01-131-0/+10
| | | | | | be helpful when directly fiddling with PC hardware. Also, define "arch-i386" appropriately, as suggested by Daniel C. Sobral.
* Add support for some FACILITY words:abial1998-12-311-1/+74
| | | | | | | | | | | | key? ( -- flag) \ check to see if there's a key to be read from input ms ( u -- ) \ wait that many milliseconds seconds ( -- u ) \ get number of seconds from midnight. 'words' now outputs the list page by page - this probably should go through libstand's pager, but will have to wait for closer integration of built-ins with Forth... Submitted partially by: W Gerald Hicks <wghicks@bellsouth.net>
* Add new word ".#" which acts like "." but doesn't output a space separator.abial1998-12-221-0/+13
| | | | | I found it impossible to output parametrized strings like "\033[%d;%dH" without building them first in pad area.
* o Add proper stack checking to all file wordsjkh1998-11-071-28/+48
| | | | | | | | | o add fkey and fread o eliminate fexists now that this can be expressed in HLL forth ( : fexists fopen dup -1 <> if fclose 1 else drop 0 then ; ) :-) Once we get the ability to write files, it should be possible to do stand-alone rescue work from the 3rd stage boot. :)
* Eliminate much code cruft by extending simple file I/O API to includejkh1998-11-071-53/+45
| | | | fopen and fclose.
* OK, fload/fexec work properly when both compiling and interpretingjkh1998-11-071-11/+9
| | | | now. Gack.
* switch words to default mode.jkh1998-11-061-4/+4
|
* Make fexists/fload work with existing string literals instead. Doingjkh1998-11-061-40/+8
| | | | my own string literal handling is just too wonky.
* Argh, I had this right[er] before. More commits to follow.jkh1998-11-061-2/+2
|
* Use proper literal names.jkh1998-11-061-2/+2
|
* Remember a bit more of my forth and do:jkh1998-11-051-11/+50
| | | | | | | | | o Add fexists word to check for the presence of a file o make fexists and fload immediate words which DTRT both interpreted and compiled (doh!) o add an init word which gets run at bootstrapping time to do extra post-coldload initialization (in the default implementation, we look for /boot/boot.4th and load it if found).
* 1. rebuild all elements of testmain properly for safety.jkh1998-11-051-1/+87
| | | | 2. add fload and key prims for doing simple file and terminal I/O, respectively
* Fix includes; we were still pulling in <stdlib.h> in some places.msmith1998-11-041-0/+6
| | | | | Support building a standalone interpreter with 'make testmain', remove win32 and egregious gets() in testmain.c
* Make this work in the libstand environment; don't use stdio/stdlib headers.msmith1998-11-041-3/+1
|
* Add the Ficl (Forth Inspired Command Language) interpreter. If all goes well,msmith1998-11-031-0/+4339
this will allow us to manage bloat in the loader by using a bytecoded HLL rather than lots of C code. It also offers an opportunity for vendors or others with special applications to significantly customise the boot process without having to commit to a divergent code branch. This early commit is to allow others to experiment with the most effective mechanisms for integrating FICL with the loader as it currently stands. Ficl is distributed with the following license conditions: "Ficl is freeware. Use it in any way that you like, with the understanding that the code is not supported." All source files contain authorship attributions. Obtained from: John Sadler (john_sadler@alum.mit.edu)
OpenPOWER on IntegriCloud