On 12/3/2010 12:00 PM, [email protected] wrote:
Message: 1
Date: Fri, 03 Dec 2010 08:44:15 +0100
From: J?rg Hoppe<[email protected]>
To: [email protected]
Subject: [Simh] SimH: Bugfix in VAX/PDP11 TK50 driver: pinging Bob!
Message-ID:<[email protected]>
Content-Type: text/plain; charset=ISO-8859-15; format=flowed


Hi folks, hello Bob,

There's a bug in V3.8-1 pdp11/pdp11_tq.c.
It causes errors on a simulated VAX under Ultrix-32v3 when reading TK50
installation tapes.
A fix is given below and should go into V3.8-2.

I'd like to combine this with a plea for documentation:
There's nothing about the TMSCP (tape) extensions to MSCP, can somebody
help?
<snip>

3) Analysis
------------
When debugging SimH with
          sim>  set console debug=stdout
          sim>  set tq debug
we see that the Ultrix-32 TMSCP driver reads a few more data records
(approx 5) than it needs (cache?).
It backspaces then a few data records to the start of tapefile15.
The TMSCP command for that is 35 "M_OP_POS" (REPOSITION), with modifiers
"REVERSE" and "OBJECT".
This means: backspace a certain amount of "tape records" (and not "tape
files").

! But when the Simh "tq" driver backspaces, it counts the tape mark
between file 14 and file 15
also as an "object". But for TMSCP an "object" is only a "data record" !
So if there are short files on the tape, the backspace will traverse a
tape mark
and SimH steps one record less backwards than it should.

<snip>
------------------------------

Message: 2
Date: Fri, 3 Dec 2010 07:08:58 -0500
From: "Shoppa, Tim"<[email protected]>
To: J?rg Hoppe<[email protected]>,      "[email protected]"
        <[email protected]>
Subject: Re: [Simh] SimH: Bugfix in VAX/PDP11 TK50 driver: pinging
        Bob!
Message-ID:
        <b136ede3df5ec441b6f08e0a7ab872450b9f654...@ex2k7-cms-1.wmata.local>
Content-Type: text/plain; charset="iso-8859-1"

with a plea for documentation:
There's nothing about the TMSCP (tape) extensions to MSCP, can somebody
help?
The best I know of is the commented DEC OS TU driver sources. Even there it's
obvious that there were frequent misunderstandings/incorrect assumptions
in early driver revisions, and sometimes there were dependencies between
driver revisions and controller firmware revisions (I remember at least
one major TQK50 revision in particular), so it becomes a kind of
industrial archaeology. And isn't that why we are messing around with this
stuff in 2010 anyway?

Tim.


------------------------------

One hates to spoil a beautiful theory with an ugly fact, but here's a direct quote from the Tape MSCP Specification, Rev 2.02, dated November 8, 1987:

    12     Object:

13 An "object" is either a Record or a Tape Mark. The first 14 tape Object is recorded forward of the Tape Format 15 Identification Area (TFIA). Note that the TFIA, Record Gaps, 16 and any other control information (e.g., error 17 detection/correction frames) are not considered to be
    18         Objects.

And further, from the description of REPOSITION modifiers:

    33              Object Count

34 The setting of this modifier and the value specified 35 in the "record count or object count" and the "tape 36 mark count" command message fields selects the
      1                  skipping operation to be performed:

2 o If set, and the "record count or object count" 3 field is non-zero, the Skip Tape Object (both 4 records and tape marks) positioning function is
     5                      enabled.

6 o If clear, and the "record count or object count" 7 field is non-zero, the Skip Record positioning
     8                      function is enabled.

9 o If clear, and the "tape mark count" field is 10 non-zero, the Skip Tape Mark positioning
    11                      function is enabled.

Still, the driver could be "right" because, as Tim noted, TMSCP went through a lot of variants and implementation missteps. The TK50 may have done object counting differently (and incorrectly). I don't have a TK50 manual that details its implementation of TMSCP (DEC guarded that very carefully), and the TMSCP spec only has a revision history back to v1.6. The revision history does mention a bunch of TK50 "temporary waivers," as well as five permanent ones, so it's certainly possible that the TK50
was doing things wrong at the time this version of Ultrix was released.

It would be useful to try installing a later version of Ultrix from the TK50 and see what happens.

I've sent the MSCP and TMSCP specs to be posted on Bitsaver.

/Bob
_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh

Reply via email to