<p dir="ltr">Yeah, I would definitely go for 4.3bsd using scc in that case. The 64 kbyte limitation of 2.11bsd using cc will cause continual hassles, even with split I/D which relaxes things a bit (for example the issue of linking big executables and the workarounds employed by 2.11bsd "ld"). You might also consider 4.4bsdlite if you want to be able to release your work, you could grab any missing pieces that aren't in assembly from 386bsd etc.<br>
Nick</p>
<div class="gmail_quote">On 25/11/2015 10:51 PM, "Oliver Lehmann" <<a href="mailto:lehmann@ans-netz.de">lehmann@ans-netz.de</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Nick,<br>
<br>
<br>
Nick Downing <<a href="mailto:downing.nick@gmail.com" target="_blank">downing.nick@gmail.com</a>> wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
According to this:<br>
<a href="https://archive.org/stream/bitsavers_zilogz80000mmu_742400/z8010_mmu_djvu.txt" rel="noreferrer" target="_blank">https://archive.org/stream/bitsavers_zilogz80000mmu_742400/z8010_mmu_djvu.txt</a><br>
You could use only segment 0 and program the code MMU to point segment 0 to<br>
some physical address and the data and stack MMUs to point segment 0 to<br>
some other physical address and you have a split I/D system capable of<br>
running 2.11bsd assuming the compiler knows nothing of segments as you<br>
said. Or, as outlined in my previous posts you can use a compiler that has<br>
23-bit pointers and understands how to output the high 7 bits as the<br>
segment and the low 16 bits as the logical address each time it<br>
dereferences a pointer (if such a compiler exists) and port 4.3bsd.<br>
</blockquote>
<br>
I have two compilers ;)<br>
<br>
One compiler which creates "unsegmented binaries". The assembler code which<br>
is generated only uses 16bit pointer addresses (r0-r15) and only works on<br>
segment 0.<br>
<br>
This compiler is for example used to compile the boot loaders and standalone<br>
utilities iirc and other "small" binaries on my SYSIII.<br>
<br>
<a href="http://pofo.de/cgi-bin/man.cgi?query=cc" rel="noreferrer" target="_blank">http://pofo.de/cgi-bin/man.cgi?query=cc</a><br>
<br>
<br>
There is also a "segmented compiler" which uses the 32bit registers (rr0-rr14)<br>
to store the pointer adresses.<br>
It is currently used for compiling the SYSIII kernel (which is much bigger than<br>
the 2.11 BSD kernel I saw) and all other "to big" binaries.<br>
<br>
<a href="http://pofo.de/cgi-bin/man.cgi?query=scc" rel="noreferrer" target="_blank">http://pofo.de/cgi-bin/man.cgi?query=scc</a><br>
<br>
And this would mean that "such a compiler exists" (referencing to your<br>
mail) and I could or should port 4.3 BSD?<br>
</blockquote></div>