Software Spotlight: Harvard Presentation Graphics A.00(1.00)
Harvard Presentation Graphics A.00 is the very first version of the once popular graphing software "Harvard Graphics". It was much easier to use than its competition, but this initial version was most notable for its copy protection scheme.
https://winworldpc.com/product/harvard-graphics/a00
HPG provided an easier, friendlier, way to create high quality business graphs and slide shows. At release, it competed against many graphing products such as PFS:Graph (AKA IBM Graphing Assistant ), Microsoft Chart, ChartMaster, and Cricket Graph, just to name a small few. A Windows port was released in 1991, but it lost out to Microsoft Powerpoint.
There is a comprehensive list of presenting/graphing programs in the September 22, 1986 InfoWorld
This software is designed for IBM PC/XT PC/AT and compatibles. Requires MS-DOS 2.0 or higher, 256K ram or 386K for VDI devices, and a hard disk or two floppy drives. Supports Hercules, EGA, and CGA graphics.
It also features built in on-screen "slide show" functionality, supports a variety of output devices, and can exchange data with Harvard Professional Publisher, PFS:Write, Lotus 1-2-3, Symphony, and PFS:Graph.
Software Publishing Corporation products used an odd letter-based version numbering system. For example, you might have versions A:00, A:01, A:02, B:00, B:01, and C:00. Sometimes they use a colon, but in this product they use a period. In this case "A.00", or just "A" means it is version "1.00". This style was dropped and the product name shortened for the release of "Harvard Graphics 2.0".
Much software of the day implemented copy protection, however businesses were increasingly looking to minimize risk and trouble by investing their money on non-protected titles instead.
Despite that, Harvard Presentation Graphics A.00 used an odd protection scheme.
To use the software from floppy, the copy protected program disk must be in the A: drive. Back in the day this would have been a pain if you had a 3.5" drive as A: and a 5.25" as B:.
You are permitted to install the program to a hard drive only 5 times, and the protection keeps track of this.
The protection method stores the text "SPC1986" in the gap area immediately following sector data. This is present on sectors 1-5 on both sides of cylinder 5.
On a real floppy drive, the post-sector gap acts as a cushion while writing individual sectors. A drive may spin a little too fast or too slow. If it is a little too slow then it will overwrite some of the gap data, and if it too fast it will leave extra garbled data in the gap. This helps prevent the system from overwriting the beginning of the next sector.
It is possible to read this data by using a special "diagnostic" track read. However, a normal floppy disk controller can not write specific data to this area.
To run from a floppy, the protection only checks one of these sectors.
However when you perform an installation, it WRITES to one of the five sectors on head zero, clobbering the "SPC1986" message that follows it. There is no way to undo this (Unless you are me! :P ) and the remaining sectors indicate how many installs are left. You can think of this like punching out one of five slots on a paper ticket.
It insists on performing a "de-installation" before you are permitted to re-install. This does not seem to do much, as it does not and can not "reclaim" an installation. You can satisfy the de-install tool simply by pointing it to an empty hard drive root directory. This may be to handle the case where a customer's hard drive has been replaced.
Once installed to the hard drive, it does not require the floppy to be in the A: drive. But the installation is protected against file copying. It appears to record the application's physical cluster location on the hard drive. This was a common protection method, but disk defragmenters totally screw this up.
Interestingly, during the install or de-install process it warns that you should not use a 1.2mb floppy drive. Writing to a 360k disk in a 1.2mb drive can sometimes muck things up. But the odd part here is most IBM PC/AT users would have had a 1.2mb drive as their A: drive.
The copy protection seems to fail on later AT class computers. It may be a controller compatibility issue, but I'm not 100% sure. I did successfully test this on several XT class computers.
Using the following commands I was able to make a PSI image that works in the PCE emulator:
What the above does is store 1024 bytes for each protected sector (1-5 on both sides of cylinder 5) but the sector size is still reported as 512 bytes, this preserves the "SPC1986" message after the data.
This enables you to run HPG from the floppy disk, however it will not successfully install to a hard drive. This may be due to the "perfect" emulation of the floppy drive, which makes it impossible to randomly clobber the GAP data like a real floppy would.
As far as I can tell, no unprotect exists for this version.
This is likely because several months after the release of A.00, SCP released A.01. This was a minor update that did away with crazy copy protection.
Harvard Graphics became extremely popular in the DOS world of the late 1980s. If you wanted to graph something on DOS, that was the program you would leech^H^H^H^H^H buy.
A Microsoft Windows version was released in 1991, however in the Windows world Microsoft PowerPoint had beat it by about a year and had already gained market traction.
In 1996 it was purchased by Serif, and interestingly it seems they still sell some versions of it: http://www.serif.com/harvard-graphics/
https://winworldpc.com/product/harvard-graphics/a00
HPG provided an easier, friendlier, way to create high quality business graphs and slide shows. At release, it competed against many graphing products such as PFS:Graph (AKA IBM Graphing Assistant ), Microsoft Chart, ChartMaster, and Cricket Graph, just to name a small few. A Windows port was released in 1991, but it lost out to Microsoft Powerpoint.
There is a comprehensive list of presenting/graphing programs in the September 22, 1986 InfoWorld
This software is designed for IBM PC/XT PC/AT and compatibles. Requires MS-DOS 2.0 or higher, 256K ram or 386K for VDI devices, and a hard disk or two floppy drives. Supports Hercules, EGA, and CGA graphics.
It also features built in on-screen "slide show" functionality, supports a variety of output devices, and can exchange data with Harvard Professional Publisher, PFS:Write, Lotus 1-2-3, Symphony, and PFS:Graph.
Software Publishing Corporation products used an odd letter-based version numbering system. For example, you might have versions A:00, A:01, A:02, B:00, B:01, and C:00. Sometimes they use a colon, but in this product they use a period. In this case "A.00", or just "A" means it is version "1.00". This style was dropped and the product name shortened for the release of "Harvard Graphics 2.0".
Much software of the day implemented copy protection, however businesses were increasingly looking to minimize risk and trouble by investing their money on non-protected titles instead.
Despite that, Harvard Presentation Graphics A.00 used an odd protection scheme.
To use the software from floppy, the copy protected program disk must be in the A: drive. Back in the day this would have been a pain if you had a 3.5" drive as A: and a 5.25" as B:.
You are permitted to install the program to a hard drive only 5 times, and the protection keeps track of this.
The protection method stores the text "SPC1986" in the gap area immediately following sector data. This is present on sectors 1-5 on both sides of cylinder 5.
On a real floppy drive, the post-sector gap acts as a cushion while writing individual sectors. A drive may spin a little too fast or too slow. If it is a little too slow then it will overwrite some of the gap data, and if it too fast it will leave extra garbled data in the gap. This helps prevent the system from overwriting the beginning of the next sector.
It is possible to read this data by using a special "diagnostic" track read. However, a normal floppy disk controller can not write specific data to this area.
To run from a floppy, the protection only checks one of these sectors.
However when you perform an installation, it WRITES to one of the five sectors on head zero, clobbering the "SPC1986" message that follows it. There is no way to undo this (Unless you are me! :P ) and the remaining sectors indicate how many installs are left. You can think of this like punching out one of five slots on a paper ticket.
It insists on performing a "de-installation" before you are permitted to re-install. This does not seem to do much, as it does not and can not "reclaim" an installation. You can satisfy the de-install tool simply by pointing it to an empty hard drive root directory. This may be to handle the case where a customer's hard drive has been replaced.
Once installed to the hard drive, it does not require the floppy to be in the A: drive. But the installation is protected against file copying. It appears to record the application's physical cluster location on the hard drive. This was a common protection method, but disk defragmenters totally screw this up.
Interestingly, during the install or de-install process it warns that you should not use a 1.2mb floppy drive. Writing to a 360k disk in a 1.2mb drive can sometimes muck things up. But the odd part here is most IBM PC/AT users would have had a 1.2mb drive as their A: drive.
The copy protection seems to fail on later AT class computers. It may be a controller compatibility issue, but I'm not 100% sure. I did successfully test this on several XT class computers.
Using the following commands I was able to make a PSI image that works in the PCE emulator:
pfi disk01.scp -r 500000 -c 0-39 -p decode pri disk01-scp-mfm.pri pfi disk01.scp -r 250000 -c 40-41 -p decode pri disk01-scp-fm.pri pri disk01-scp-mfm.pri -m disk01-scp-fm.pri disk01-scp.pri pri disk01-scp.pri -p decode auto disk01-1.psi psi disk01-1.psi -e position -1 -c 5 -h 0-1 -s 1-5 -p delete disk01-1.psi pri disk01-scp.pri -c 5 -h 0-1 -s mfm-min-size 1024 -p decode auto disk01-2.psi psi disk01-2.psi -e crc-data 0 -e position -1 -c 5 -h 0-1 -s 6-9 -p delete disk01-2.psi psi disk01-2.psi -m disk01-1.psi disk01.psi
What the above does is store 1024 bytes for each protected sector (1-5 on both sides of cylinder 5) but the sector size is still reported as 512 bytes, this preserves the "SPC1986" message after the data.
This enables you to run HPG from the floppy disk, however it will not successfully install to a hard drive. This may be due to the "perfect" emulation of the floppy drive, which makes it impossible to randomly clobber the GAP data like a real floppy would.
As far as I can tell, no unprotect exists for this version.
This is likely because several months after the release of A.00, SCP released A.01. This was a minor update that did away with crazy copy protection.
Harvard Graphics became extremely popular in the DOS world of the late 1980s. If you wanted to graph something on DOS, that was the program you would leech^H^H^H^H^H buy.
A Microsoft Windows version was released in 1991, however in the Windows world Microsoft PowerPoint had beat it by about a year and had already gained market traction.
In 1996 it was purchased by Serif, and interestingly it seems they still sell some versions of it: http://www.serif.com/harvard-graphics/
Comments
Clicking the link, I receive "Currently, Harvard Graphics software is only available to customers in the USA."
Now the preferred method is geo-blocking.
Hi,
This is cool !
I have interest in how you restore/undo it.
Can you share the method in detail ?
Thank you.
Best regard,
coolhaken
Thanks for share the rare original A00 version.
Yes, it doesn't work on newer machine with 1.2MB Drive.
(It seems to work on 8088 with 360KB Drive.)
Also it can't be installed (recognize) with large HDD capacity.
I wonder how to initialize (restore) installation limitation.
(I've checked RESTORED.TC)
This lets you not only edit sector data, but also the address marks, sector headers, sector footers, and gap data.
The used original had this at the end of track 5 sector 5:
So, I edited it to resemble the remaining unwritten protected sectors:
Yes, I did check (see) the sectors by TE.EXE of TransCopy Editor.
You seems to edit (recover) Track 5 / Side 0 / Sector 5.
I really didin't know that it is possible to edit by PCE, hehehe.
Very useful information.
I have finally studied this thread carefully. Amazing work!
I am also interested in using this method to recover images.
However, I wonder if the decoded MFM stream can be converted directly back into KF .raw tracks.
If so I could use some starting advice, but can probably figure out the rest once started.
>If so I could use some starting advice, but can probably figure out the rest once started.
It is still impossible to convert RAW/PRI image to SCP or Kryoflux but possible to Transcopy image (.TC).
It is up to the developer of SCP or Kryofux.
I think developer seems not to be interesed in coverting TC (or RAW image) to KF/SCP.
convert PRI to KF
pfi -p encode pri image.pri disk1.pfi
pfi disk1.pfi track00.0.raw
convert TC to KF
pfi -p encode pri image.tc disk1.pfi
pfi disk1.pfi track00.0.raw
But the information about the drives RPM speed is usually off by a factor of 8, and confuses the Kryoflux software. If you open the resulting Kryoflux stream file in the HxC disk tools and re-save it, then that MAY create a usable stream file, although I believe that still contains some incorrect information.
HxC can also convert KF streams to SCP, but the last time I tried it with KF streams created with the above method, the SCP would not write a usable disk. Probably due to the buggy incorrect information remaining in the file.
Also, converting TC to text:
pri image.TC -p decode text-mfm image.txt
Converting text back to TC:
pri -p encode text image.txt image.tc