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

 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:

 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
  ones, so it's certainly possible that the TK50
  doing things wrong at the time this version of Ultrix was released.

  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

Thanks for that TMSCP doc!

I spent the day testing some combinations of SimH/tape image/Ultrix version.
- SimH: original V3.8-1 vs. my "JH-path" version
- Ultrix installation: v3.0 vs. v4.0
- Test tapes:
        TAPE1 =   
www.bitsavers.org/bits/DEC/vax/ultrix/3.0/Ultrix-32_3.0_unsupp.tap
        TAPE2 =  "DEC C FOR RISC-ULTRIX TK50 (DEC 1991, AQ-PCXFA-BE 
ME214414).simh_tq.tk50" (own copy, call me)

Results:
1) A real uVAX under Ultrix 3.0 can read the real "Ultrix-32_3.0_unsupp.tap" 
(surprise!)
   The controller was QBUS TQK50 (M7546), the drive was TK50.
2) SimH can not read  "Ultrix-32_3.0_unsupp.tap" error free, neither on Ultrix 
v3 nor on Ultrix v4.
3) The TMSCP driver in Ultrix v4 is apparently different from v3:
   The error patterns under SimH are similar, but not the same. Data loss is 
greater under v4.
4) My little hack (I was so proud of it:-)) is very weak:
   - Sure, it makes "Ultrix-32_3.0_unsupp.tap" readable under Ultrix v3, as 
intended.
   - But SimH can not ">>>  boot MUA0" anymore.
   - It does not work on Ultrix v4 with "Ultrix-32_3.0_unsupp.tap"
   - It does not work with other tapes under Ultrix v3: Tapes with a small file 
before EOT fail.

I attached my test setups&  protocols, if somebody likes to work with it.

How would we continue from here?

regards,
Joerg





################################################################################
Test 1:
Tape=TAPE1, exercises "backspace reverse by objects" with "setld" cmd.
TAPE1 has this structure:
obj # | What?                        | Repeat | File:rec | Offset (hex/dec)
------+------------------------------+--------+----------+----------------------
    0 | Data record with 512 bytes   |      1 | 0:0      |    0:0000 = 0
    1 | Tape Mark                    |      1 |          |    0:0208 = 520
...
 1621 | Tape Mark                    |      1 |          |   FB:2878 = 16459896
 1622 | Data record with 10240 bytes |      7 | 13:0-6   |   FB:287C = 16459900
 1629 | Tape Mark                    |      1 |          |   FC:40B4 = 16531636
 1630 | Data record with 10240 bytes |      3 | 14:0-2   |   FC:40B8 = 16531640
 1633 | Tape Mark                    |      1 |          |   FC:B8D0 = 16562384
 1634 | Data record with 10240 bytes |     12 | 15:0-11  |   FC:B8D4 = 16562388
 1646 | Tape Mark                    |      1 |          |   FE:9934 = 16685364
 1647 | Data record with 10240 bytes |      5 | 16:0-4   |   FE:9938 = 16685368
 1652 | Tape Mark                    |      1 |          |   FF:6160 = 16736608
...

        sim> att tq0 -r  
www.bitsavers.org/bits/DEC/vax/ultrix/3.0/Ultrix-32_3.0_unsupp.tap
        # setld -x /dev/rmt0a
        check for parity errors!

Combinations & Results for various setups:
#    Setup-ID           Info                                                    
Result
---  ----------         ----------------------------------                      
----------
1.1)                    real microVAX with TQK50/TK50, real tape, Ultrix v3:    
OK
1.2) SIM-ORG_U3_TAPE1   SimH 3.8-1, Ultrix V3:                                  
checksum errors
1.3) SIM-JH_U3_TAPE1    patched SimH Ultrix V3:                                 
OK
1.4) SIM-ORG_U4_TAPE1   SimH 3.8-1, Ultrix V4:                                  
checksum errors,  final "rewinding tape" hangs (> 10 minutes)
1.5) SIM-JH_U4_TAPE1    patched SimH Ultrix V4:                                 
checksum errors,  final "rewinding tape" hangs (2 min)


################################################################################
Test 2:
Tape=TAPE1, isolates "backspace reverse by object" as error, shows that tape 
image is OK.
        sim> att tq0 -r  
www.bitsavers.org/bits/DEC/vax/ultrix/3.0/Ultrix-32_3.0_unsupp.tap

Test 2.a: read file stream
        # mt rewind                                             begin from tape 
start
        # mt fsf 13                                             jump to 14th 
tape file
        # dd if=/dev/nrmt0h bs=10240 of=tapefile13              read it
        7+0 records in
        7+0 records out
        # dd if=/dev/nrmt0h bs=10240 of=tapefile14.err          and read the 
critical 15th file in sequence
        2+0 records in                                          FAIL: only 2 
blocks read!
        2+0 records out

Test 2.b: position to start of file, no "backspace reverse by object count"
        # mt rewind                                             begin from tape 
start
        # mt fsf 14                                             now jump 
directly to critical 15th file
        # dd if=/dev/nrmt0h bs=10240 of=tapefile14.ok           read it
        3+0 records in                                          OK: now 
correctly 3 records are read!
        3+0 records out

Combinations & Results for various setups:
#    Setup-ID           Info                            Result
---  ----------         ------------------------        ------------------
2.1)  SIM-ORG_U3_TAPE1  SimH 3.8-1, Ultrix V3:          Test 2.a fails (2 
records) , Test 2.b OK (3 records)
2.2)  SIM-JH_U3_TAPE1   patched SimH Ultrix V3:         Test 2.a OK (3 records) 
,     Test 2.b OK (3 records)
2.3)  SIM-ORG_U4_TAPE1  SimH 3.8-1, Ultrix V4:          Test 2.a fails (0 
records) ,  Test 2.b OK (3 records)
2.4)  SIM-JH_U4_TAPE1   patched SimH Ultrix V4:         Test 2.a fails (0 
records) ,  Test 2.b OK (3 records)


################################################################################
Test 3:
Tape=TAPE2, has a 3-record file at the end.  exercises "backspace reverse by 
objects at end of tape"
        Shows that there's another error at end of tape
        sim> att tq0 -r DEC C FOR RISC-ULTRIX TK50 (DEC 1991, AQ-PCXFA-BE 
ME214414).simh_tq.tk50
        # setld -x /dev/rmt0a
        check for parity errors!
Dump:
obj # | What?                        | Repeat | File:rec | Offset (hex/dec)
------+------------------------------+--------+----------+----------------------
    0 | Data record with 10240 bytes |      1 | 0:0      |    0:0000 = 0
    1 | Tape Mark                    |      1 |          |    0:2808 = 10248
    2 | Data record with 10240 bytes |      1 | 1:0      |    0:280C = 10252
    3 | Tape Mark                    |      1 |          |    0:5014 = 20500
    4 | Data record with 10240 bytes |      1 | 2:0      |    0:5018 = 20504
    5 | Tape Mark                    |      1 |          |    0:7820 = 30752
    6 | Data record with 10240 bytes |      5 | 3:0-4    |    0:7824 = 30756
   11 | Tape Mark                    |      1 |          |    1:404C = 81996
   12 | Data record with 10240 bytes |    385 | 4:0-384  |    1:4050 = 82000
  397 | Tape Mark                    |      1 |          |   3D:7458 = 4027480
  398 | Data record with 10240 bytes |     72 | 5:0-71   |   3D:745C = 4027484
  470 | Tape Mark                    |      1 |          |   48:B69C = 4765340
  471 | Data record with 10240 bytes |      2 | 6:0-1    |   48:B6A0 = 4765344
  473 | Tape Mark                    |      3 |          |   49:06B0 = 4785840

Test 3.a: read file stream
        # mt rewind                                             begin from tape 
start
        # mt fsf 5                                             jump to 6th tape 
file
        # dd if=/dev/nrmt0h bs=10240 of=tapefile5              read it
        72+0 records in
        72+0 records out
        # dd if=/dev/nrmt0h bs=10240 of=tapefile6.err          and read the 
critical 15th file in sequence
        0+0 records in                                          FAIL: 0 blocks 
read!
        0+0 records out

Test 3.b: position to start of file, no "backspace reverse by object count"
        # mt rewind                                             begin from tape 
start
        # mt fsf 6                                             now jump 
directly to critical 14th file
        # dd if=/dev/nrmt0h bs=10240 of=tapefile6.ok           read it
        2+0 records in                                          OK: now 
correctly 2 records are read!
        2+0 records out


Combinations & Results for various setups:
#    Setup-ID           Info                            Result
3.1) SIM-ORG_U3_TAPE2   SimH 3.8-1, Ultrix V3.0:        Test 3.a fails (0 
records) , Test 3.b OK (2 records)
3.2) SIM-JH_U3_TAPE2    patched SimH Ultrix V3.0:       Test 3.a fails (1 
records) , Test 3.b OK (2 records)
3.3) SIM-ORG_U4_TAPE2   SimH 3.8-1, Ultrix V4:          Test 3.a fails (0 
records) , Test 3.b OK (2 records)
3.4) SIM-JH_U4_TAPE2    patched SimH Ultrix V4:         Test 3.a fails (0 
records) ,  Test 3.b OK (2 records)




Test 4:
Boot from TK50
        >>> boot mua0
#    Setup-ID           Info                            Result
SIM-JH_U3_TAPE1         patched SimH                    ERROR
SIM-ORG_U3_TAPE1        original SimH                   BOOT OK

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

Reply via email to