The 1985 "The Print Shop" for the IBM PC

edited February 2013 in Software
Broderbund Software's "The Print Shop" is one of those long lived applications that reuses version numbers and shuffles around the name enough to make Googling for information a challenge.

While looking in the file "Print Shop 1.0 (5.25).7z" I discovered this not only contained disk images of the 1989 "The New Print Shop" for DOS (the one with a Mac like UI), but also the first 1985 port of "The Print Shop" for the IBM PC / PC XT.

The interesting thing about this version is that it looks almost exactly like the original Apple II version.

Despite being labeled as an "installation disk" in the archive, it is actually intended to be a booter. The install file installs DOS on the original disk, not the application on the hard drive. It didn't include DOS because not all early 80s DOS machines were IBM PC hardware compatible, requiring them to use their OEM versions of DOS to operate.

The disk also uses a form of copy protection that prevents it from running from a hard disk. It is great that was preserved in it's original unaltered state, but an unprotect is needed to make it useful. Thankfully there are many "text file" archive sites still out there that archive such information.

Just for good measure:
Print Shop unprotect procedures

       The  Print  Shop uses an installation process which  records  the
       physical  location  of the program in an  overlay  file.   During
       program  initialization, a check is made to see if  the  location
       has changed.  If it has, due to a restore, a disk reorganization,
       a  disk  optimization, or anything, the program refuses  to  run.
       The  code  to do the checking is actually stored in  the  overlay
       file.    These  procedures  force  the  result  to  be   accepted
       regardless of whether the check is correct or not.

       1)  Install  the program in the usual way, using the  Print  Shop
       install programs.

       2)  Copy the files to another directory.

       3)  Uninstall the programs, again using the Print Shop programs.

       4)  Now CD to the directory which has the copied files.

       5)  Use DEBUG to make the following changes:

            -DEBUG PSINIT.OVR             Load the program into DEBUG
            -S0 FFF 59 3B C8 75 1E        This is a version check.
            xxxx:024A                     If you don't get this number,
                                               STOP NOW.  Wrong version!
            -e24d 90 90                   NOP out an instruction
            -s0 fff 30 e8 13 df 85 co 74 29
            xxxx:0265                     If you don't get this number,
                                               STOP NOW.  Wrong version!
            -e26b eb                      Change a conditional jump to
                                               unconditional.
            -w                            Write the file back
            -q                            Quit DEBUG

       The  Print  Shop program will now run from any directory  on  any
       disk.

Anyway, awseome stuff.

Comments

  • That is pretty cool. Wonder how someone derived that.
  • Very carefully.

    In all seriousness, though, it's probably reading the FAT and comparing it to its known hard-coded location. You'd disassemble it and look for any INT 0x13 calls. After that it's a matter of trial and error to figure out which is the one to bypass - the copy protection routine most likely reads two bytes, then compares them to a value in memory; so look for that instruction pattern. The instruction being NOPed out is most likely the compare, to avoid generating any side-effects before doing the jump, which does not clear said side-effects.
  • The unfortunate thing is that a lot of software from the early 80s used crazy copy "protection" schemes. Some hundreds of times crazier than the one shown above - and with no known unprotect or anyone willing to make one. This badly hinders the ability of much software from this era to be properly archived or preserved.

    Had the Print Shop used a scheme that involved non-standard floppy disk sectors (a popular method back then), whoever dumped the disk probably would have thought the disk was defective and just thrown it away.
  • I'd imagine it wouldn't be hard to disassemble the software and remove the copy protection, since it's just something that runs at startup.
  • Sometimes it is, sometimes it isn't. Some programs went to great lengths to internally obfuscate their code, and then check the protection in multiple ways at multiple hidden points in their code. On a sufficiently complicated program it would be hard to know if you got all of the checks without a large number of people testing your modifications.

    To make matters worse, some (especially on Apple IIs) would store the entire program in non-standard disk sectors so you would have to find a way to extract that first.

    Then there were programs that would throw a monkey wrench in the system if it detected you were running it in a debugger. Some early 80s software from Microsoft would claim it was erasing your disk if it detected anything like that.
Sign In or Register to comment.