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.