Commit Graph

16 Commits

Author SHA1 Message Date
Mark Cave-Ayland
711e388514 Fix up the new 2>r, 2r> and 2r@ words.
As pointed out by Tarl, since these are called as separate words (and not inline), we need to preserve the top-most R stack item 
as this is return address of the word itself.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@912 f158a5a8-5612-0410-a976-696ce0be7e32
2010-10-17 09:10:09 +00:00
Mark Cave-Ayland
238ba3218d Add Forth words 2>r, 2r> and 2r@ as described in the ANSI Forth core extensions as they are required for OpenSolaris.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@911 f158a5a8-5612-0410-a976-696ce0be7e32
2010-10-16 22:37:31 +00:00
Mark Cave-Ayland
9e577b8ace Implement the "to" Forth word for setting defers. This enables OpenSolaris to execute "' kmem64-tte is va>tte-data" for setting
the va>tte-data defer.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@878 f158a5a8-5612-0410-a976-696ce0be7e32
2010-10-03 10:34:50 +00:00
Mark Cave-Ayland
50e344721c Fix up parse word so that it can correctly handle empty arguments and (encode-bootpath) word so that it can handle optional
arguments. With these fixes in place we can now switch the boot word to use (encode-bootpath) which means that the bootpath and 
bootarg properties are now set exactly the same when executing boot and/or load.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@803 f158a5a8-5612-0410-a976-696ce0be7e32
2010-06-28 05:16:15 +00:00
Mark Cave-Ayland
7e28db1a6e Move the temporary compilation buffer into dictionary space. This prevent spurious dictionary overflow messages appearing due to
setup-tmp-comp switching dictionaries to memory outside of the initial dictionary space.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@761 f158a5a8-5612-0410-a976-696ce0be7e32
2010-04-30 20:54:03 +00:00
Mark Cave-Ayland
7253d7b0af Revert r638, apply previous patch to extend control flow stack items to 2 data stack items, and fix the Fcode evaluator to use
this new information to correctly resolve destination (b<mark) references. See the email archives for further discussion on why 
this is required.

Hopefully this should finally resolve the Fcode backward branch problem; at least all previous incorrect resolutions now appear 
correct and the Fcode evaluator no longer crashes or gets stuck in a loop while attempting to boot Milax.



git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@641 f158a5a8-5612-0410-a976-696ce0be7e32
2009-12-09 01:09:48 +00:00
Mark Cave-Ayland
dbc5a9c3ba Fix backwards Fcode branches (bbranch and b?branch).
According to the specification, the destination for a backwards Fcode branch must be resolved from the bottom rather than the 
top of the cstack. The existing version of the code was simply doing a swap, and so nesting any branches within a backward branch 
would fail since the wrong destination would be resolved from the stack.

This patch adds a new cstack-startdepth variable to keep track of the cstack base location within an execution context 
(setup-tmp-comp and execute-tmp-comp) and alters the backward branches to make use of it.

With this patch in place, Milax under Qemu doesn't crash anymore but sits in an infinite loop reading sectors from the CDROM.


Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>



git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@638 f158a5a8-5612-0410-a976-696ce0be7e32
2009-12-03 15:47:39 +00:00
Stefan Reinauer
7dbe5e6507 This patch replaces the string definitions in nvram.fs by the
simpler version s" that does not contain a complex parser for
" "(0a) type of strings.

Also use handle-text in " instead of the hand crafted version. This fixes 
strings in "see".

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@613 f158a5a8-5612-0410-a976-696ce0be7e32
2009-11-17 16:54:24 +00:00
Laurent Vivier
3e457210bd Implement "$=" to compare two strings (needed by BootX)
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@572 f158a5a8-5612-0410-a976-696ce0be7e32
2009-08-29 20:42:22 +00:00
Blue Swirl
dfb87d8446 Minor tweaks to dump word output (Mark Cave-Ayland)
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@511 f158a5a8-5612-0410-a976-696ce0be7e32
2009-07-12 20:16:39 +00:00
Blue Swirl
0d8df65985 Don't add padding spaces when evaluating headerless words (Mark Cave-Ayland)
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@502 f158a5a8-5612-0410-a976-696ce0be7e32
2009-06-06 14:57:25 +00:00
Blue Swirl
14cdca306d Fix b(case)...b(of)...b(endof)...b(endcase) (Mark Cave-Ayland)
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@498 f158a5a8-5612-0410-a976-696ce0be7e32
2009-05-24 11:15:48 +00:00
Igor Kovalenko
17594b70b8 forth: add more pockets
This changes pocket index calculation to support more than two pockets.
As an example default number of pockets is set to 4.
This should ease nesting more than two levels using pockets as
temporary storage.

Signed-off-by: Igor Kovalenko <igor.v.kovalenko@gmail.com>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@494 f158a5a8-5612-0410-a976-696ce0be7e32
2009-05-22 17:15:48 +00:00
Blue Swirl
0ba0e77ecd Fix b(do) ... b(leaves) ... b(loop)/b(+loop) (Mark Cave-Ayland)
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@492 f158a5a8-5612-0410-a976-696ce0be7e32
2009-05-22 17:09:52 +00:00
Blue Swirl
a7188cc237 Fix pad alignment
git-svn-id: svn://coreboot.org/openbios/openbios-devel@231 f158a5a8-5612-0410-a976-696ce0be7e32
2008-08-30 10:51:55 +00:00
Stefan Reinauer
5c9eb9b45b initial import of openbios--main--1.0--patch-26
git-svn-id: svn://coreboot.org/openbios/openbios-devel@1 f158a5a8-5612-0410-a976-696ce0be7e32
2006-04-26 15:08:19 +00:00