[Simh] pdp11 fails MAINDEC CPU test 14 D0NA

Paul Moore paulmoore100 at hotmail.com
Thu Jul 9 18:37:12 EDT 2020


So the test doc is wrong then, it says valid for 11/05, 20 and 10 (this is the MAINDEC manual dated oct 73)
I was running with SET CPU 11/05

Maybe the engineers knew to just ignore that failure, 'don’t worry they all halt there, just hit run, trust me'

Ran the same test on 11/20 and it passes

TBC - none of this is my code, either the test or the emulator, running DEC diagnostics on simh v4. This was just an FYI for you

I am stilling trying to get past the test of executing an IOT with the T bit set, that’s a tough one to get right 😊. SO I have not reached this test yet

-----Original Message-----
From: Johnny Billquist <bqt at softjar.se> 
Sent: Thursday, July 9, 2020 3:14 PM
To: Paul Moore <paulmoore100 at hotmail.com>; simh at trailing-edge.com
Subject: Re: [Simh] pdp11 fails MAINDEC CPU test 14 D0NA

This is a test that tests something which is actually implementation dependent. So you need to run the appropriate test on the appropriate CPU.

More specifically:

The following processor uses the original content of Rn as source when doing an operation like MOV Rn,(Rn)+

LSI-11, 11/04, 11/05, 11/10, 11/34, 11/44, 11/45, 11/70.

The following processors uses the modified content of Rn as source when doing an operation like MOV Rn,(Rn)+

11/15, 11/20, 11/23, 11/24, 11/35, 11/40, 11/60, J11

So, depending on which CPU you are planning to emulate, you need to do this differently...

And just so you know, there are other implementation defined differences between different models as well, which you probably should research, if you want your emulation to behave correctly...

   Johnny

On 2020-07-10 00:00, Paul Moore wrote:
> Not sure if you are interested but I found that simh fails test 14. 
> (Running the tests on my own emu project and wondered if simh would 
> pass all of these nasty tests too)
> 
> 007176: 010700                              mov       
> r7,r0                                       ; @.
> 
> 007200: 012700 006340               mov       
> #6340,r0                               ; @.`.
> 
> 007204: 010020                              mov       
> r0,(r0)+                 ; ..
> 
> 007206: 026727 177126 006342                 cmp       
> 6340,#6342                         ; W-V~b.
> 
> 007214: 001401                              beq        
> 7220                                       ; ..
> 
> 007216: 000000                              
> halt                                                        ; ..
> 
> If you don’t know these test the general layout is as follows
> 
> Load pc in r0 (presumably to identify the test if a halt occurs)
> 
> Run the test
> 
> Halt if fail
> 
> Next test
> 
> Simh halts at 7220
> 
> This test is verifying the behavior of using the contents of an auto 
> increment register. IE exactly when does the register change value in 
> the instruction flow
> 
> Mov r0,(r0)+
> 
> Their test expects the value moved to DD to be the new value of R0. Ie 
> the incremented register value is committed as soon as it is used to 
> calculate the address
> 
> Simh(v4) (running as 11/05 not tried other models) moves the old value. 
> Ie the register update is not processed until the instruction is 
> complete
> 
> sim> e r0
> 
> R0:     006342
> 
> sim> e 6340
> 
> 6340:   006340
> 
> 
> _______________________________________________
> Simh mailing list
> Simh at trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
> 

-- 
Johnny Billquist                  || "I'm on a bus
                                   ||  on a psychedelic trip
email: bqt at softjar.se             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol


More information about the Simh mailing list