Re: A86: Re: New operating system...


[Prev][Next][Index][Thread]

Re: A86: Re: New operating system...




At 22:48 1999-02-22 -0600, you wrote:
>ZShell programs had to patch themselves by calling a bunch of slow routines
>in the shell that added the program's address to the address they wanted to
>call (they used a bunch of relative jumps).  Usgard relocation sucks too,

Thanks :)

>It looks
>to me that their special pre-assembler takes all the addresses prefixed by &
>and creates a table at the end of program, which are then patched to where
>ever the program is in memory, then patched back when it's done. 

True.

>Unless I
>understand it wrong (which I probably do), this method either takes up lots
>of room or can have errors. 

Umm... wrong and wrong... every time you access a label with the absolute
address, a table entry is needed. In average, each entry takes about
one byte because the relative location of the address is stored (and
the relative location is in 99% of the cases <256 bytes). A 1000 bytes
program might spend about 50 bytes on the table, which I don't think is
much.

>PhatOS just relocates special PhatOS programs (PhatStrings) to a specific
>place in memory, using a "standard" routine that they wanted all shells to
>use.  Rigel looked to me like an awsome shell, the only one offering true
>fixed-address relocation (the only real method, IMHO) and possible
>dynamic-link style libraries.  If I was going to program/port on the 85, I'd
>use Rigel.  Just a little background, I spent a whole evening studying ALL
>of the 85 shells...  (not tonight)

As I've said before, this has disadvantages too. And if you want a
taskswitching OS for the 86, this method is more or less out of question.
Of course,
you could use one RAM page for each task :) but that would be memory
consuming beyond thought... (and the Usgard style relocation a better choice)

//Jimmy Mårdell

E-mail: yarin@acc.umu.se
Homepage: http://www.acc.umu.se/~yarin/



References: