[Simh] TK50 behavior
Bob Supnik
bob at supnik.org
Fri Dec 3 20:28:15 EST 2010
On 12/3/2010 12:00 PM, simh-request at trailing-edge.com wrote:
> Message: 1
> Date: Fri, 03 Dec 2010 08:44:15 +0100
> From: J?rg Hoppe<j_hoppe at t-online.de>
> To: simh at trailing-edge.com
> Subject: [Simh] SimH: Bugfix in VAX/PDP11 TK50 driver: pinging Bob!
> Message-ID:<4CF89FCF.4010601 at t-online.de>
> 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"<tshoppa at wmata.com>
> To: J?rg Hoppe<j_hoppe at t-online.de>, "simh at trailing-edge.com"
> <simh at trailing-edge.com>
> Subject: Re: [Simh] SimH: Bugfix in VAX/PDP11 TK50 driver: pinging
> Bob!
> Message-ID:
> <B136EDE3DF5EC441B6F08E0A7AB872450B9F65419E at 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
More information about the Simh
mailing list