I'm sorry but you don't need segment registers for position independent code at all.

Address all data off of the index registers or off the PC and all branches are relative.

You can even have local stack for data using the U stack register.

OS/9 was all relocatable, position independent code.  The only addresses that were absolute in OS/9 were the address of the I/O devices.

OS/9 was a multi tasking, multi user operating system on the 6809. Level 1 ran in 64K, level 2 needed more and used Dynamic Address Translation to extend the addressing space to 1Mbyte.


On 12/4/2024 1:33 PM, ben via cctalk wrote:
On 2024-12-04 12:14 p.m., Nigel Johnson Ham via cctalk wrote:
On 2024-12-04 14:09, Tony Duell wrote:
On Wed, Dec 4, 2024 at 7:06 PM Nigel Johnson Ham via cctalk
<[email protected]> wrote:
[6809]
I agree. The user stack pointer was a killer feature.
I like(d) the progam counter relative addressing mode along with the
long branch instructions so you could write position-independant code.

-tony

Yes, a reminder of my pdp-11 days :-)

But that really does not fix code and data relocation.
You need a segment registers for that.



Reply via email to