> A lot of mdv programs are protected via the "Software produktion kit" > (SPK) > from sinclair, checking the "magic number" from an mdv. > > The SPK (written by Tony Tebby) uses a keyword "PROT" to format an mdv > with > the magic number of the original mdv during the copying process.
On a 128KB QL, there was also a way to do this from SuperBASIC without the PROT keyword. If the QL had no resident code loaded, microdrive sectors would always be loaded at the same address and a PEEK_W allowed to get the "magic number". A POKE_W of the magic number at location 163886 (the "random number" system variable) just before the FORMAT command would do the trick to produce a microdrive having the same magic number. The file utilities that come with Q-emuLator allow reading the "magic number" (and some other info sometimes used in copy protection schemes) from a QL with working microdrives (on any QL, not just 128KB QLs with no resident code loaded) and embed it in the files themselves. These files can then be transferred to any media (for example, a DVD burned on your PC or Mac) and whenever they are accessed, Q-emuLator will simulate reading them from a microdrive having the original magic number. > Unfortunately, a lot of software (usually non "sinclair-branded" ones) on > mdv uses very different protection mechanisms. "The Pawn" (Magnetic > Scrolls) > linked an own OS into the QL an switches QDOS off, "Tankbusters" and most > "Talent" games had very hard mechanisms. I know (from one author), that > Talent has given their mechanism to the authors to put it into the code. I think at least Talent's Zkul only relied on the "magic number", and maybe on some weird character in the cartridge name. Other common (and easy to work around) protection schemes involved special files with weird/special characters in their names or with no name at all, or with special information in their file header (all of these can't be copied by typing a simple COPY command). More complex schemes involved reading data from MDV sectors that where marked as free or damaged on the MDV map, or marking as damaged a particular sector number. I also tried to create a protection mechanism based on formatting microdrives with different characteristics (e.g. 256 bytes per sector instead of 512), but never succeeded because of timing differences between code running in RAM and ROM. Because of this problem, even the normal sectors I would need to format (from my in-RAM code) with standard params to hold the boot loader code would not be readable from the QL's microdrive routines (in-ROM code). > Beside the both mentioned programs, there was also "QLone+" from > Ultrasoft, > which was also able to copy mdv programs, which read the "magic number" in > formatting a new cartridge with the same number. I also wrote a similar program with my dad. It copied the magic number and also allowed wery quick microdrive physical copies on unexpanded QLs by reading/writing mdv sectors out of order. I used it extensively to back up my microdrives, as I found them to be quite unreliable. Unfortunately the program's interface is in Italian only, and I don't know if I still have the sources, but if anybody needs a free tool to back up his protected microdrives, and if such a free tool is not already available, let me know and I'll try to find the executable. Daniele _______________________________________________ QL-Users Mailing List http://www.q-v-d.demon.co.uk/smsqe.htm
