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: