################################################################################ 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