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>>