[TUHS] Porting 2.11 BSD

Oliver Lehmann lehmann at ans-netz.de
Wed Nov 25 21:51:28 AEST 2015


Hi Nick,


Nick Downing <downing.nick at gmail.com> wrote:

> According to this:
> https://archive.org/stream/bitsavers_zilogz80000mmu_742400/z8010_mmu_djvu.txt
> You could use only segment 0 and program the code MMU to point segment 0 to
> some physical address and the data and stack MMUs to point segment 0 to
> some other physical address and you have a split I/D system capable of
> running 2.11bsd assuming the compiler knows nothing of segments as you
> said. Or, as outlined in my previous posts you can use a compiler that has
> 23-bit pointers and understands how to output the high 7 bits as the
> segment and the low 16 bits as the logical address each time it
> dereferences a pointer (if such a compiler exists) and port 4.3bsd.

I have two compilers ;)

One compiler which creates "unsegmented binaries". The assembler code which
is generated only uses 16bit pointer addresses (r0-r15) and only works on
segment 0.

This compiler is for example used to compile the boot loaders and standalone
utilities iirc and other "small" binaries on my SYSIII.

http://pofo.de/cgi-bin/man.cgi?query=cc


There is also a "segmented compiler" which uses the 32bit registers (rr0-rr14)
to store the pointer adresses.
It is currently used for compiling the SYSIII kernel (which is much  
bigger than
the 2.11 BSD kernel I saw) and all other "to big" binaries.

http://pofo.de/cgi-bin/man.cgi?query=scc

And this would mean that "such a compiler exists" (referencing to your
mail) and I could or should port 4.3 BSD?



More information about the TUHS mailing list