[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