contains a special loader which is heavily encrypted and can read and decode the Copylock Serial Track. The encrypted code verifies that the disk has the correct Copylock Serial Key, which is uniquely generated for each game. On the machine language level, Copylock works by using the Motorola 68000 trace mode, which causes the processor to execute a specific trace vector before each instruction in the main program. The trace vector decodes the machine language code just-in-time before it is executed and re-encrypts it after execution, so that no more than one or two instructions are stored unencrypted into physical memory at any given time. This is called a trace vector decoder and was originally implemented on the Atari ST platform and afterwards copied to early Amiga models, both based on the 68000 architecture. First series There were two types of Copylock routine of the earlier series. In the internal type, the Copylock Serial Key for that particular software is passed in hardware register D0 and stored at memory address $24. Inventive programmers could use this serial key for specific purposes to force the would-be cracker to have to remove the additional checks in the game. However, on many early titles, programmers typically just performed a check for the serial key, which was easy to find in a program and therefore to disable. In the wrapper type, the code to start the game, or boot routine, is encrypted and then included with the Copylock code. All disk validity checking is performed by the Copylock code: if successful, the trace vector decoding extends to the encrypted boot routine or file; the data are then moved to the location expected by the game code and the routine is executed. This type of Series 1 Copylock was often used for games that loaded in one hit and did not need to access the disk drive again. However, this meant that the copy protection was rendered useless once the game was decrypted, as then the game could be 'single-filed', i.e. dumped entirely from memory, saved to disk and then made to work independently of the Copylock routines. Second series Series 2 was an evolution of the internal Series 1 routines, which again made early versions easy to circumvent, since many programmers only implemented a simple protection check that read the serial key from the Copylock Serial Track and checked that it was correct. Crackers