Yes, if the test says that, it must be wrong, since the 11/05 and 11/20
do not do the same thing here. This is documented in the MicroPDP-11
Handbook, for example
(http://www.bitsavers.org/pdf/dec/pdp11/handbooks/EB-24944-18_Micro_PDP-11_Handbook_1983-84.pdf,
page 379 and forward).
Johnny
On 2020-07-10 00:37, Paul Moore wrote:
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 <b...@softjar.se>
Sent: Thursday, July 9, 2020 3:14 PM
To: Paul Moore <paulmoore...@hotmail.com>; simh@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@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: b...@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
_______________________________________________
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh