Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Forth > Re: Separated h...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 6 of 17 Topic 4006 of 4289
Post > Topic >>

Re: Separated headers

by m_l_g3 <m_l_g3@[EMAIL PROTECTED] > Apr 21, 2008 at 07:38 AM

On Apr 21, 2:48 pm, "Maki" <veselic...@[EMAIL PROTECTED]
> wrote:
> I have recently cross-compiled my first forth system (subroutine
threads),
> and now I want to separate headers from code. Current header arrangement
> looks like this:
> [link][flags][count][name] code
> I guess I need one more pointer in the header like this:
> [link][flags][count][name][code_ptr]  which will connect header to
> definition.

[link][flags][code_ptr][count][name]
because name is variable length

>
> Questions:
>
> 1. What is the best way to handle allocation in name dictionary? My
current
> thought is to revector dp with words like:
> PROGRAM HERE ( returns dp from program code dictionary)
> NAMES HERE ( returns dp from name dictionary)

An alternative is
: N-HERE N-DP @[EMAIL PROTECTED]
 ;;
: N-ALLOT N-DP +! ;
etc.

I do not know which one is best (a global switch or wordset
duplication).

>
> 2. Implementation of word >name is trickier. It appears that  >name now
> should use FIND to go back to name field.

It's not really find... I promise, you will enjoy coding.

And even a better one is the word that determines in which
definition the address is. (Say, you want to print the return stack in
case of errors).
You will need an array of pointers to the last word in each chain of
each word list.

>
> Are there any other pitfalls that I should pay attention to when doing
this?
> Any advices an comments appreciated.
> Best regards,
> M.

Relative links in name fields are probably worth doing it.
Probably so are relative links in branches.
But in general, relocation is not a problem.
If you have a system with segments for, say, code, data, and names,
you load the system two times at different offsets,
for example, c1, d1, n1 for the first time, and c2, d2, n2 the 2nd
time,
and the offsets for segments will be all different:
c2-c1=10h; d2-d1=40h; n2=n1=80h.

Now you can compare two images and find references that must be
relocated.
The difference will tell you what kind of reference is that:
10h -- code
40h -- data
80h -- names

30h: relative code->data
and so on.
 




 17 Posts in Topic:
Separated headers
"Maki" <vese  2008-04-21 12:48:29 
Re: Separated headers
Alex McDonald <blog@[E  2008-04-21 05:30:01 
Re: Separated headers
"Maki" <vese  2008-04-21 20:39:04 
Re: Separated headers
Alex McDonald <blog@[E  2008-04-21 14:38:54 
Re: Separated headers
"Maki" <vese  2008-04-22 00:45:13 
Re: Separated headers
m_l_g3 <m_l_g3@[EMAIL   2008-04-21 07:38:58 
Re: Separated headers
Bruce McFarling <agila  2008-04-21 08:10:01 
Re: Separated headers
"Maki" <vese  2008-04-21 20:27:24 
Re: Separated headers
"Maki" <vese  2008-04-21 21:02:18 
Re: Separated headers
mark4 <i440r@[EMAIL PR  2008-04-21 19:54:54 
Re: Separated headers
"Maki" <vese  2008-04-22 09:33:23 
Re: Separated headers
m_l_g3 <m_l_g3@[EMAIL   2008-04-24 04:35:50 
Re: Separated headers
"Maki" <vese  2008-04-25 11:11:51 
Re: Separated headers
Albert van der Horst <  2008-04-22 18:49:34 
Re: Separated headers
"Mark W. Humphries&q  2008-04-28 03:10:28 
Re: Separated headers
Coos Haak <chforth@[EM  2008-04-28 20:24:51 
Re: Separated headers
"Mark W. Humphries&q  2008-04-28 16:25:31 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Tue Oct 14 11:15:22 CDT 2008.