most basic Commodore user is aware that protection is included on
      most of the commercial programs he buys. Using a simple 
      data-copier to archive the original usually fails to make a working
      copy.
      
      One company on the other hand, uses a different approach for
      their latest series of sports games.  Instead of encoding the
      protection upon the diskette where the game is stored, included
      with the sale of each of their programs is a device called a
      "dongle". The dongle is simply a small plastic device that plugs
      into the cassette port of your Commodore 64/128. The dongle
      includes a small resistor that makes it look complicated, but it is
      actually a very simple device. The resistor merely ties a positive
      6 volt lead to an input port that the Commodore uses for cassette
      load/save interfacing. The fact is, the resistor on the dongle
      could be replaced with a simple piece of wire. The resistor serves
      merely either to avoid "shorting" out your Commodore (which is
      doubtful), or, as most of us tend to see it, as a deceiving 
      device.

      Through software, the programmer checks a certain memory location
      to see if that particular bit has a 0 value (dongle in place), or 
      a 1 value (dongle not plugged in.) If the bit value retrieved is a
      "1", the program refuses to operate.
      
      The following tutorials will deal with deprotecting the software
      checks in the program code. Looking through machine-language code
      for a protection-check is quite a time-consuming task since there
      are probably a million ways to check if a bit value at a certain
      memory location is either on or off. In the following pages, we
      will try to give you some of the more popular methods.

      The bit that the dongle triggers is located at memory location
      $0001. Using a machine-language monitor, we can verify that bit 4
      is always on without the dongle plugged in.
      
       $0001:
      
       Bit 7 6 5 4 3 2 1 0
      
           X X X l X X X X
      
      Bit 4 will become "0" when the dongle is plugged in. A short
      machine-code program assembled in the cassette buffer ($0334) can
      check the 4th bit:

              A 0334 LDA #$10
                0336 BIT $01
                0338 BEQ $033A
                0339 BRK
                033A BRK

      Type G 0334 with the dongle in or out.

            K.J. REVEALED TRILOGY    PAGE [75]     (C)1990 K.J.P.B.

<<previous page - next page>>