[TUHS] running BSD 2.11 on my PDP 11/70 emulator

Folkert van Heusden folkert at vanheusden.com
Wed Apr 16 06:05:13 AEST 2025


Most of them do, the ones for instruction-emulation that is. MMU 
emulation not completely.

I'll make a note to try Ultrix.

This is also an update: I did fixes for MMR1 handling. It was reset at 
the wrong moment and not set correctly. Also I was throwing trap 4 
instead of 250 for mmu errors - that doesn't help either :-)

Now "make" starts without bus errors altough after cc fails with a 
"pushfile" error:

2.11 BSD UNIX (folkert.vanheusden.com) (console)

login: root
erase, kill ^U, intr ^C
# cd /usr/src/sys
# ls
CURLY       QT          h           netimp      pdpif       sys
FVH         autoconfig  machine     netinet     pdpmba      vaxif
GENERIC     bootrom     mdec        netns       pdpstand    vaxuba
OTHERS      conf        net         pdp         pdpuba
# cd FVH
# make
make -f Make.net I=/usr/include H=../h M=../machine AS="/bin/as -V"  
CPP="/lib/cpp -P -DKERNEL -DFVH -DINET -DSOFUB_MAP -I. -I../h 
-DSUPERVISOR" CFLAGS="-O -DKERNEL -DFVH -DINET -DSOFUB_MAP -I. -I../h 
-DSUPERVISOR"  SED="/bin/sed" ED="/bin/ed"
cc -O -DKERNEL -DFVH -DINET -DSOFUB_MAP -I. -I../h -DSUPERVISOR -S 
../net/if_loop.c
<command line>:1: warning: __BSD2_11__ redefined (previously defined at 
"<command line>" line 6)
<command line>:2: warning: BSD2_11 redefined (previously defined at 
"<command line>" line 7)
<command line>:3: warning: __pdp11__ redefined (previously defined at 
"<command line>" line 8)
<command line>:4: warning: pdp11 redefined (previously defined at 
"<command line>" line 9)
<command line>:5: warning: unix redefined (previously defined at 
"<command line>" line 10)
<command line>:6: warning: __STDC__ redefined (previously defined at 
"<command line>" line 11)
pushfile: error open >z(5\|
*** Exit 1

Stop.
*** Exit 1

Stop.

Progress!

On 2025-04-08 23:33, Clem Cole wrote:

> Do you pass the DEC diagnostics?  They are not perfect, but they can 
> sometimes tease out some of the interesting corner cases, although the 
> OS's are known to be even better at that, albeit with less interesting 
> diagnostics.  Also, did you try Ultrix, which is one step farther than 
> V7 but not quite as far as 2.11BSD?  Another thing I learned from 
> reading your comments that got me thinking a little: IIRC the 
> red/yellow zone stuff for the stack is different between PDP-11 
> implementations.   As Phil noted, 2.11BSD differs from V7 and Ultrix in 
> that they tried adding more Vax logic into it. >>I have not looked at 
> the 2.11BSD sources<< to check, but it possible/likely that Steven and 
> team redid that code.  So I would check to see what V7 is doing on a 70 
> when it gets a stack fault and needs to grow it vs. the 2.11BSD code.
>> 
> On Tue, Apr 8, 2025 at 3:11 PM Folkert van Heusden 
> <folkert at vanheusden.com> wrote:
> 
>> 1. sounds like a calculation bug of some sort. possible, but not 
>> likely:
>> I patched simh to output a set of large JSON-files with tests and 
>> their
>> outcomes so that I can verify my emulator with the gold standard of 
>> pdp
>> emulation without simply copying the simh-code (hopefully one day I 
>> can
>> produce that set with a real hardware pdp 11/7). sofar I fixed all
>> problems I found (a few flag problems and handling of the PSW).
>> 
>> 2. yeah I have a suspicion that it might be a problem in one of the 
>> more
>> complex addressing modes (@xxx(R7) for example where some of it comes
>> from I space and some of D-space). am writing tests or that now.
>> regarding the 11/45 versus 11/70: I set the cpu to 11/70 when 
>> verifying
>> the disk-image with simh. so it should run in a 11/70.
>> 
>> 3. if I do that, the "avail mem" goes down with it, user mem stays
>> 307200.
>> 
>> [1*:
>> https://vanheusden.com/git/folkert/simh-testsetgenerator/src/branch/valgen
>> look for test.c]
>> 
>> On 2025-04-07 14:02, Kenneth Goodwin wrote:
>> 
>>> To me it looks like a memory issue of some sort. Setup of the MMU 
>>> etc.
>>> 
>>> 1. Your user memory is less than 10% of "available memory" which 
>>> should
>>> be the amount left after the kernel loads and allocates dynamic
>>> buffers. User memory should be alot closer to available number. 
>>> Unless
>>> it is referring to limits of mmu per process and not total available
>>> for all user level programs.
>>> 
>>> 2. The bulk of the text dump seems to just be random initialized data
>>> dumped from Ram.
>>> Aka - Printf() format strings.  Indicates that the wrong address in
>>> memory is potentially being accessed.
>>> 
>>> Perhaps the pdp11 emulator configuration does not have a correct mmu
>>> for your image file.
>>> 
>>> For example,  you are running the 11/70 emulation and the binary 
>>> image
>>> you are running is actually compiled for a pdp 11/45.
>>> 
>>> The 11/70 has an mmu supporting split instruction and data spaces. 
>>> 64k
>>> instruction,  64k data. But the kernel you are using was compiled to
>>> run on a non split I And D version of the pdp11 supporting only 64kb 
>>> of
>>> combined user and data.
>>> 
>> 
>> [ this suggestion came from Kenneth's 2nd reply, added in this message
>> to prevent a lot of reply-mails by me ]
>> 
>>> 3. If your bsd image has kernel dynamic buffer configuration limit
>>> parameters,  you could tweak those down say 50% to see what happens.
>>> (Not a BSD kernel hacker and it's been a while since I last read over
>>> the source code)

-- 

www.vanheusden.com [1]

Links:
------
[1] http://www.vanheusden.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.tuhs.org/pipermail/tuhs/attachments/20250415/9f726d0d/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: blocked.gif
Type: image/gif
Size: 118 bytes
Desc: not available
URL: <http://www.tuhs.org/pipermail/tuhs/attachments/20250415/9f726d0d/attachment.gif>


More information about the TUHS mailing list