[HECnet] VaxHaven CD-ROM image archive issue (and solution)

Ian McLaughlin ian at platinum.net
Tue Mar 31 08:14:03 PDT 2020


Hello all,

I’m the administrator for the Vaxhaven site, and I’m happy to see it’s getting some use :)

Not that I’m wanting to put any more work on my plate (work has been declared an essential service, so still quite busy), but if anyone tidies up one of the images and sends me a copy (or a link to dropbox/gdrive/etc) I’d be happy to post the modified image. I’d like to limit the images to ones that you have tested and know work - there’s no use putting up a second image that is also broken in some way.  Please send the link directly to me so I don’t miss a post in the mailing list by accident.

Happy to help in whatever way I can.

Stay safe.

Ian


> On Mar 31, 2020, at 7:56 AM, John H. Reinhardt <johnhreinhardt at thereinhardts.org> wrote:
> 
> On 3/31/2020 8:05 AM, G. wrote:
>> Hello everyone,
>> 
>> 	some time ago I discovered that several images downloaded from the
>> VaxHaven CD-ROM image archive appear to be corrupted. Actually they are not
>> really corrupted: they just include not only sector data from the original
>> media but also CD-ROM sector preambles and error-correcting codes which are
>> usually skipped when dumping discs with e.g. the UNIX 'dd' command.
>> 
>> In other words, CD-ROM raw sectors are made of a 16 byte preamble, a 2048
>> byte data area, and a 288 checksum (Reed-Solomon) for a total of 2352 bytes
>> whereas audio CDs use the whole 2352 bytes in another way (channel frames).
>> 
>> See https://en.wikipedia.org/wiki/CD-ROM for more information.
>> 
>> Since I usually mount these disc images directly on VMS with the LD driver,
>> I wanted to find a native way to "clean" them which would not require any
>> additional software besides whatever is available on a standard VMS system.
>> 
>> After downloading and unpacking some affected image, the first thing to do
>> is to ensure that it has some sensible RMS attributes:
>> 
>> $ SET FILE /ATTR=(RFM=FIX,LRL=2352,RAT=NONE) AG-Q2PLL-XE.ISO
>> 
>> Then we will use the Sort/Merge utility to fix it. To do so we need a file
>> to instruct the utility on how to manipulate data records both in input and
>> output. Let's call it CDFIX.SRT and store it with the following lines:
>> 
>> /FIELD=(NAME=HEAD, POSITION=   1, SIZE=  16)
>> /FIELD=(NAME=BODY, POSITION=  17, SIZE=2048)
>> /FIELD=(NAME=TAIL, POSITION=2065, SIZE= 288)
>> /DATA=BODY
>> 
>> Finally we could run the utility to extract the good portion from every
>> record of the original image:
>> 
>> $ MERGE /NOCHECK /STAT /SPEC=CDFIX AG-Q2PLL-XE.ISO AG-Q2PLL-XE_FIXED.ISO
>> 
>> This is the result on a somewhat slow system. Note the input and output
>> record length on the right column:
>> 
>>                   OpenVMS Sort/Merge Statistics
>> 
>> Records read:      304468          Input record length:     2352
>> Records sorted:    304468          Internal length:         6761
>> Records output:    304468          Output record length:    2048
>> Working set:        65536          Sort tree size:             0
>> Virtual memory:       416          Number of initial runs:     1
>> Direct I/O:         81792          Maximum merge order:        1
>> Buffered I/O:           8          Number of merge passes:     1
>> Page faults:           35          Work file alloc:            0
>> Elapsed time: 00:04:25.92          Elapsed CPU:      00:00:32.98
>> 
>> Anyway, a friend of mine provided me with a short Python program which
>> achieves the same result:
>> 
>> with open("AG-Q2PLL-XE.iso", "rb") as fr:
>>     with open("AG-Q2PLL-XE-fixed.iso", "wb") as fw:
>>         byte = 'somedata'
>>         while byte != "":
>>             _ = fr.read(16)
>>             byte = fr.read(2048)
>>             fw.write(byte)
>>             _ = fr.read(288)
>> 
>> I didn't test any of the above with every image in the archive, but I
>> suppose that the "corrupted" ones have all the same problem.
>> 
>> HTH, :)
>> G.
>> 
> Thank you G!  I ran the python script on the VAXHaven V5.5-2H4 image and the Mac recognized it and created a CD that now mounts on my MicroVAX 3100!
> 
> $ mount /over=id dka500:
> %MOUNT-I-WRITELOCK, volume is write locked
> %MOUNT-I-MOUNTED, VMS2H4055 mounted on _$101$DKA500: (LAUMER)
> $ set def dka500:[000000]
> $ dir
> 
> Directory DKA500:[000000]
> 
> BACKUP.SYS;1 0/0         20-JUL-1993 10:22:48.62  [SYSTEM] (RWED,RWED,RE,)
> BADBLK.SYS;1 0/0         20-JUL-1993 10:22:48.62  [SYSTEM] (RWED,RWED,RE,)
> BADLOG.SYS;1 0/0         20-JUL-1993 10:22:48.62  [SYSTEM] (RWED,RWED,RE,)
> BITMAP.SYS;1 99/99        20-JUL-1993 10:22:48.62  [SYSTEM] (RWED,RWED,RE,)
> CONTIN.SYS;1 0/0         20-JUL-1993 10:22:48.62  [SYSTEM] (RWED,RWED,RE,)
> CORIMG.SYS;1 0/0         20-JUL-1993 10:22:48.62  [SYSTEM] (RWED,RWED,RE,)
> DECW2H4055.C;1 13293/13293     22-JUL-1993 16:31:44.74  [SYSTEM] (RE,RE,RE,RE)
> DECW2H4055.D;1 16065/16065     22-JUL-1993 16:31:44.96  [SYSTEM] (RE,RE,RE,RE)
> DECW2H4055.E;1 3276/3276      22-JUL-1993 16:31:45.15  [SYSTEM] (RE,RE,RE,RE)
> DECW2H4055.F;1 4599/4599      22-JUL-1993 16:31:45.33  [SYSTEM] (RE,RE,RE,RE)
> DECW2H4055.G;1 29673/29673     22-JUL-1993 16:31:45.50  [SYSTEM] (RE,RE,RE,RE)
> DECW2H4055.H;1 3843/3843      22-JUL-1993 16:31:45.75  [SYSTEM] (RE,RE,RE,RE)
> INDEXF.SYS;1 273/273       20-JUL-1993 10:22:48.62  [SYSTEM] (RWED,RWED,RE,)
> ISL_SCRIPT.ESS;1 2/2         20-JUL-1993 10:34:07.42  [SYSTEM] (RWED,RWED,RWED,)
> VMS2H4055.A;1 2640/2640      22-JUL-1993 16:31:45.91  [SYSTEM] (RE,RE,RE,RE)
> VMS2H4055.B;1 49581/49581     22-JUL-1993 16:31:46.10  [SYSTEM] (RE,RE,RE,RE)
> VMS2H4055.C;1 40761/40761     22-JUL-1993 16:31:46.27  [SYSTEM] (RE,RE,RE,RE)
> VMS2H4055.D;1 18585/18585     22-JUL-1993 16:31:46.44  [SYSTEM] (RE,RE,RE,RE)
> VMSU2H4055.A;1 252/252       22-JUL-1993 16:31:46.64  [SYSTEM] (RE,RE,RE,RE)
> VMSU2H4055.B;1 17028/17028     22-JUL-1993 16:31:46.80  [SYSTEM] (RE,RE,RE,RE)
> VOLSET.SYS;1 0/0         20-JUL-1993 10:22:48.62  [SYSTEM] (RWED,RWED,RE,)
> 
> Total of 21 files, 199970/199970 blocks.
> $
> 
> -- 
> John H. Reinhardt
>  PRRT&HS  #8909
>  C&O HS  #11530
>  N-Trak   #7566
> 




More information about the Hecnet-list mailing list