[OpenBIOS] Back at it again( PCI Passthrough )

Joe van Tunen joevt at shaw.ca
Tue May 8 21:41:30 CEST 2018

The b?branch command causes the dictionary pointer to change from fff81e54 to fff57240. This behavior is described in fcode.fs where b?branch calls setup-tmp-comp. It's using the tmp-comp-buf which is initialized to a fixed size of 200 in bootstrap.fs. Is 200 enough?

Maybe you should test this functionality with a simplified fcode image.

Create a fcode image containing the following (tokenize it so it can be loaded with byte-load - add any necessary stuff I didn't include such as start1):

." start test"
testa 0= if
  ." testa is 0"
  testb 0= if
    ." testb is also 0"
." done test"

Test the image by creating the testa and testb values and byte-load the image for each combination of values (add any necessary stuff I didn't include in the byte-load command):

0 value testa
0 value testb
1 to testa
1 to testb
0 to testa

if that all works, then you need to start stepping through the OpenBIOS code to find when the exception is thrown (maybe you can add some ." ..." to the various .fs files to narrow the search). You have all the code to OpenBIOS, so you should be able to find the problem eventually.

From: OpenBIOS <openbios-bounces at openbios.org> on behalf of Jd Lyons via OpenBIOS <openbios at openbios.org>
Date: Tuesday, May 8, 2018 at 5:36 AM

Ok, I made those changes to openbios, here is the output.

On May 8, 2018, at 6:50 AM, Joe van Tunen <mailto:joevt at shaw.ca> wrote:

: (debug-feval) ( fcode# -- fcode# )
  \ Address
  fcode-stream 1 - . here u. ." : "
  \ Indicate if word is compiled
  state @ 0<> if
    ." (compile) "
  dup fcode>xt cell - lfa2name type
  dup ."  [ 0x" . ." ]" cr

More information about the OpenBIOS mailing list