< < < BERKELEY SOFTNORKS : GEOS 2.0 > > >
Warning: Trying to understand this chapter may be hazardous to
your mental health. If you haven't read "Inside Commodore DOS",
"CSM's Program Protection Manual Vol. 2", and "The Official GEOS
Programmer's Reference Guide" at least twice, cover-to-cover, then
turn the page ....
The copy protection routine in GEOS has been a thorn in the
side of everyone who ever needed a working backup of their
original. A backup copy of GEOS only boots and loads properly when
all of the several layers of protection checks have been satisfied
perfectly. We found this out the hard way with our first GEOS 1.3
parameter. What appeared to be an ideal way around the protection
check turned into a nightmare. Customers complained that file
selection dialogue boxes acted strangely; that the dreaded "SYSTEM
ERROR NEAR $XXXX" appeared at odd times; and that; sometimes, the
GEOS System files would inexplicably disappear.
That we had failed was obvious. What was not obvious was the
subtle complexity of the protection scheme. It took almost a week
of sleepless nights to come up with a satisfactory solution to the
problem. If you're still game, let's analyze exactly what GEOS BOOT
does and how it does it.
Prepare a fast copy of your ORIGINAL GEOS 2.0. It should
contain little or no modifications to the disk structure and
directory, especially the System Boot Files "GEOS", "GEOS BOOT",
and "KERNAL". Make sure you have a work disk ready so you can save
code to it. You will also need a reset button and the "GMON" drive
monitor on the Revealed III utility disk to conveniently follow the
boot routine from its humble beginning to the bitter end. "GMON" is
a modified "Kracker Mon" and is NOT relocatable. It was assembled
to occupy C-64 memory from $2000 - $3FFF, which GEOS ignores until
the inevitable entrance of "DESK TOP". It may be activated from
BASIC with the command "SYS 8192".
If you use the included Disk Logger, you will find that "GEOS"
and "GEOS BOOT" (GB) load respectively from $0110 - $0206 and $6000
- $64A9. Using "GMON", load and examine "GEOS" in memory. No funny
stuff here. Its only purpose is loading and executing GB. You may
safely ignore this file and directly load GB with "GMON".
The next step is to browse through the program code. You'll
find a lot of areas that don't disassemble properly because the
code is encrypted. The decryption routine is actually fairly
simple. It may be seen near the bottom of the GB file at $6483 in
K.J. REVEALED TRILOGY PAGE  (C)1990 K.J.P.B.
<<previous page -