💾 Archived View for spam.works › mirrors › textfiles › apple › CRACKING › krackssi.txt captured on 2023-06-16 at 21:13:00.
View Raw
More Information
-=-=-=-=-=-=-
- **************************************
- *
- *
- KRAKOWICZ'S KRACKING KORNER *
- *
- SSI'S RDOS *
- *
- *
- **************************************
IT'S REALLY NOT FAIR WHEN ONE
PUBLISHER HAS A SYSTEM THAT KEEPS THEIR
SOFTWARE FROM BEING CONVENIENTLY BACKED
UP, ESPECIALLY WHEN SO MANY OF THE
OTHER "PROTECTION" SCHEMES HAVE FALLEN
TO THE GROWING CORPS OF TALENTED
KRACKISTS. WITH THAT IN MIND, AND
BECAUSE WE ALL LOVE A CHALLENGE, WE
WILL TAKE A LONG LOOK AT THE APPROACH
USED BY STRATEGIC SIMULATIONS, INC.
(SSI) IN PROVIDING COPY PROTECTION FOR
THEIR SERIES OF WAR SIMULATIONS AND
"RAPID-FIRE" SERIES, AS WELL AS SOME
RECENT GAMES WHICH HAVE A LITTLE
REDEEMING SOCIAL MERIT: EPIDEMIC,
RINGSIDE SEAT, AND GALACTIC ADVENTURES.
AS WE'VE DISCUSSED IN THE BASICS
OF KRACKING SERIES, YOU CAN EITHER
PROTECT A PROGRAM BY VARIOUS MEANS, OR
YOU CAN PROTECT A DISK FULL OF PROGRAMS
WITH SOME SORT OF DOS MODIFICATION.
DOS MODIFICATIONS ARE USUALLY NOT TOO
SUCCESSFUL, SINCE SOME ENTERPRISING
PERSON OUT IN PIRATELAND WILL SOONER OR
LATER FIGURE A WAY TO COPY ALL THE
FILES ONTO A NORMAL DOS DISK, MAKING
ALL THE DISK PROTECTION WORTHLESS.
SSI'S ANSWER TO THIS PROBLEM WAS NOT
ONLY TO WRITE AN EXTENSIVELY REVISED
DOS, BUT TO COUPLE IT WITH
"ENHANCEMENTS" TO APPLESOFT USING THE
AMPERSAND VECTOR (MORE ON THIS LATER).
THIS WAY, EVEN IF YOU COULD STRIP THE
FILES OFF THE DISK, YOU WOULD NEED TO
WRITE A DOS WHICH WAS:
A. DOS 3.3 COMPATIBLE,
B. AS SHORT AS RDOS ($B100-$BFFF),
SINCE THE PROGRAMS FREQUENTLY USE
ALL OF THE FREE SPACE, AND
C. CAPABLE OF CORRECTLY INTERPRETING
THE AMPERSAND COMMANDS WHICH ARE
LIBERALLY SPRINKLED THROUGH
ALL THE APPLESOFT PROGRAMS.
THE AMOUNT OF EFFORT REQUIRED TO DO
THIS HAS KEPT KRACKISTS AT BAY, AT
LEAST UNTIL NOW.
FIRST, HOW TO APPROACH THIS TYPE
OF KRACKING JOB? THE SEVENTH LAW OF
KRACKING SAYS: "WHEN YOU'RE TOTALLY
LOST, BOOT-TRACE" (I KNOW, I KNOW -- I
PROMISE THAT I'LL WRITE A COMPLETE
COLUMN ON BOOT-TRACING SOON. IF YOU
JUST CAN'T WAIT, TRY TO GET HOLD OF THE
HARDCORE MAGAZINE UPDATE 3.1, PAGES
6-15. IT HAS A LUCID, WELL-EXAMPLED
DISCUSSION OF THE BOOT-TRACING
PROCESS). WHEN YOU LOAD T0, S0 INTO
$800, YOU WILL IMMEDIATELY SEE THE
FAMILIAR "BRODY LOADY" (NAMED AFTER
THAT FUN-LOVING BUNCH OF SCANDAHOOVIANS
AT BR0DERBUND) WHICH MOVES THE ENTIRE
PAGE DOWN TO PAGE 2 AND JUMPS TO $20F
TO COMPLETE THE BOOT. THIS IS A FAIRLY
TRICKY BOOT WHICH HAS BEEN USED FOR
ALL TYPES OF PROTECTION SCHEMES, BUT IF
YOU PUZZLE OVER IT LONG ENOUGH, YOU'LL
SEE THAT THE JMP ($003E) AT LOCATION
343 DOUBLES AS A JUMP TO THE SECTOR
READ ROUTINE, THEN AS A JUMP TO THE
PROGRAM START WHEN ALL THE SECTORS ARE
READ IN. THE PROGRAM START IN THIS CASE
IS $B300, WHICH IS A JMP $B974 THAT
DROPS YOU INTO A DISCOURAGINGLY COMPLEX
SERIES OF JSR'S AND JMP'S.
AT THIS POINT, DISCRETION IS THE
BETTER PART OF VALOR (REMEMBER THE
SECOND LAW: THERE'S ALWAYS ANOTHER
WAY). WHAT THE BOOT-TRACE HAS TOLD US
IS THAT THE DOS CODE LIVES FROM $B300
TO $BFFF, AND IS NOT STRAIGHTFORWARD,
"LINEAR" CODE. YOU MAY RECALL THAT WE
DESCRIBED HOW TO LIST AN RDOS APPLESOFT
FILE IN BASICS 103: RESET, D6:00, C081,
CTRL-C, "LIST". YOU WILL BE IMMEDIATELY
STRUCK BY A WHOLE NEW LIST OF COMMANDS
THAT MOTHER APPLE NEVER TOLD YOU ABOUT.
THESE ARE AMPERSAND (&) COMMANDS WHICH
HAVE BEEN ADDED TO IMPLEMENT THE RDOS
COMMANDS, AND THEY WORK AS FOLLOWS:
WHENEVER THE "&" IS ENCOUNTERED,
APPLESOFT JUMPS TO LOCATION $3F5.
LOOKING AT THAT LOCATION WILL TELL YOU
WHERE THE AMPERSAND EVALUATION ROUTINE
IS LOCATED; IN THIS CASE, IT CONTAINS
4C 03 B3 OR JMP $B303. EXAMINATION OF
THE CODE THERE REVEALS THAT THE
ACCUMULATOR IS COMPARED TO A TABLE OF
NUMBERS IN $B320-$B330, AND THE ADDRESS
OF THE ROUTINE TO BE EXECUTED IS PICKED
UP FROM A TABLE IN $B331-$B352. YOU CAN
EASILY SEE ALL THIS CODE BY RESETTING
ANY OF THE RDOS SSI GAMES, AND IF
YOU'RE REALLY INTERESTED, YOU CAN
CONTACT YOUR LOCAL PIRATE FOR A COPY OF
THE SOURCE CODE LISTINGS, IN BIG MAC
FORMAT, FOR BOTH THE ORIGINAL AND DOS
3.3 COMPATIBLE VERSIONS OF RDOS. THE
DISK ALSO CONTAINS OBJECT CODE FOR RDOS
3.3 AND LISTINGS OF THE OTHER PROGRAMS
USED FOR SECONDARY PROTECTION AND
INITIALIZING. IF THERE'S ENOUGH
INTEREST, THE SYSOP MIGHT BE PERSUADED
TO INCLUDE THEM ON HIS APPLE TREK
KRACKING DISK #2.
NOW WE'RE STARTING TO MAKE
PROGRESS. EACH TIME THE & COMMAND IS
ENCOUNTERED, APPLESOFT OBLIGINGLY JUMPS
UP TO $B303 WITH THE HEX VALUE OF THE
NEXT BASIC TOKEN IN THE ACCUMULATOR,
AND THEN DECIDES WHAT TO DO NEXT. THE
TOKENS, WITH THEIR VALUE, SUBROUTINE
ADDRESS START, AND FUNCTION ARE SHOWN
BELOW:
& --- HEX DEC ADDR FUNCTION IN RDOS
----- --- --- ---- ----------------
C 43 67 B353 CATALOG (&C AT)
LOAD B6 182 B371 LOAD APLSFT FILE
RUN AC 172 B446 RUN APLSFT FILE
GOTO AB 171 B44C EXEC (?)
SAVE B7 183 B48D SAVE APLSFT FILE
STORE A8 168 B511 BSAVE (WITH A,L)
RECALL A7 167 B52B BLOAD, A OPTIONAL
DEF B8 184 B544 ?
PRINT BA 186 B56C WRITE TO TEXTFILE
READ 87 135 B582 READ TEXT FILE
END 80 128 B5A9 CLOSE A FILE
DEL 85 133 B5AE DELETE A FILE
LEN E3 227 B5CD ?
D 44 68 B620 DRIVE?
S 53 83 B62E SLOT?
NEW BF 191 B64F ?
USR D5 213 B670 CHG RTN FROM &
AS YOU CAN SEE, NOT ALL HAVE BEEN
CHASED DOWN. INTERESTED PARTIES ARE
INVITED TO INVESTIGATE AND SHARE THE
RESULTS WITH US ALL.
BUT THIS, TOO HAS ONLY A LIMITED
VALUE, SINCE WE RUN OUT OF INFORMATIVE
TOKENS AT ABOUT $B679 IN A LISTING THAT
CONTINUES UP TO $BFFF. THE ONLY WAY TO
GET THERE IS TO CALL UP THE INFANTRY
AND SLOG OUR WAY THROUGH THE CODE,
BRUTE FORCE. SINCE IT'S A DOS, THERE
MUST BE READ AND WRITE CODE OF SOME
SORT, SO LOOKING AROUND FOR DISK
ACCESSES ($C08C,X) IS A GOOD PLACE TO
START. THE FIRST ENCOUNTER IS AT $BB6B,
WHICH IS CLEARLY A "WRITE" SECTION--
$C08F,X = OUTPUT; $C08E,X = SENSE WRITE
PROTECT. IT'S FOLLOWED BY A READ SECTOR
ROUTINE AT $BBFD-BC64, AND READ ADDRESS
ROUTINE AT $BC65-BCC0. ON CLOSE
EXAMINATION, IT CAN BE SEEN THAT THE
ROUTINES HAVE BEEN LIFTED ALMOST
VERBATIM FROM DOS 3.2, WITH THE ADDRESS
MARKER CHANGED TO D4 AA B7 (IN MOST
CASES). AHA! MAYBE WE CAN SNEAK IN THE
APPROPRIATE ROUTINES FROM DOS 3.3 AND
MAKE IT DO D5 AA 96'S? TO MAKE A
LENGTHY STORY SHORT, THE ANSWER IS YES,
BUT. DOS 3.2 USES, AS YOU PROBABLY
KNOW, "6+2" NIBBLIZING IN STORING DATA
ON THE DISK, WHILE 3.3 USES "5+3". THE
END RESULT IS THAT THE PRE- AND
POST-NIBBLIZING ROUTINES MUST BE
TRANSPLANTED FROM DOS 3.3, AS WELL AS
BOTH READ AND WRITE BYTE TRANSLATE
TABLES. THE ADDRESS MARKERS AND THE
SIZE OF THE NIBBLE BUFFERS MUST ALSO BE
ADJUSTED. WHEN THIS IS DONE (WITH MUCH
WAILING AND GNASHING OF TEETH), THE END
RESULT IS A FUNCTIONAL, DOS 3.3
COMPATIBLE RDOS: RDOS 3.3.
(AS A BRIEF ASIDE, THE ESSENTIAL
TOOLS IN THIS TASK ARE (OF COURSE),
BENEATH APPLE DOS, AND THE DOSSOURCE
COMMENTED LISTING OF ALL THE DOS CODE).
NOW, WE KNOW FROM PREVIOUS GAMES
LIKE CRISIS MOUNTAIN AND MING'S
CHALLENGE THAT WE CAN READ THE SECTORS
INTO MEMORY FROM A DISK WITH MODIFIED
RWTS ROUTINES BY USING ITS OWN RWTS AND
THE INSPECTOR, THEN SWAPPING RWTS
ROUTINES TO STANDARD DOS 3.3 AND
WRITING THEM OUT AGAIN ON A FORMATTED
DISK. THE PROSPECT OF DOING ALL THE SSI
GAMES BY HAND BOGGLES THE MIND,
HOWEVER, AND REQUIRES AN AUTOMATED
APPROACH (THEY WERE SUPPOSED TO WORK
FOR ->US<-, REMEMBER?). THE ANSWER TO
THIS PROBLEM WAS THE PROGRAM NOW KNOWN
AS COPYB - A HIGHLY MODIFIED VERSION OF
COPYA WHICH DOES THE RWTS SWAP FOR YOU,
AND EVEN INITIALIZES DISKS AS A BONUS.
THE VERSION OF COPYB IN GENERAL
CIRCULATION INCLUDES RWTS ROUTINES
WHICH HAVE BEEN MODIFIED FOR READING
AND WRITING RDOS. REASONABLE DIRECTIONS
ARE INCLUDED ON THE DISK, SO IT SHOULD
BE POSSIBLE TO BACK UP YOUR OWN SSI
DISKS, USING THE ADDITIONAL INFORMATION
PROVIDED BELOW.
ARMED WITH RDOS 3.3 AND COPYB, IT
IS NOW POSSIBLE TO BEGIN ATTACKING ONE
OF THE SSI PROTECTED DISKS. SINCE RDOS
IS BASED ON DOS 3.2, THE DISKS ARE ALL
13-SECTOR FORMAT, AND SINCE THE DOS IS
ALL ON TRACK ZERO, YOU WANT TO BEGIN
THE TRACK COPYING PROCESS WITH TRACK
ONE. TO REITERATE THE COPYB
INSTRUCTIONS, RUN COPYB, THE TYPE
CTRL-C OR RESET WHEN THE PROMPT FOR
SOURCE DISK COMES UP. GET INTO THE
MONITOR AND TYPE 22E:1 TO SET THE
STARTING TRACK TO 1, THEN, IF THE
ADDRESS MARKER BYTES WERE D4 AA B7,
BLOAD THE FILE CALLED "RDOS READ RWTS"
(IT GOES INTO $8000 AS THE DEFAULT
LOCATION). NEXT, BLOAD "RDOS
WRITE",A$7000, THEN MOVE IT TO THE
NORMAL RWTS LOCATIONS WITH
B700<7000.78FFM (THIS IS NECESSARY
BECAUSE YOU'RE USING THE RWTS ROUTINES
TO READ IN THE FILES; WRITING ON TOP OF
OPERATING CODE CAN LEAD TO VERY
UNPLEASANT RESULTS). RETURN TO BASIC,
DELETE LINE FIVE, AND TYPE 'RUN'.
ANSWER THE QUESTION "13 SECTOR", ENTER
THE APPROPRIATE SLOTS AND DRIVES, AND
YOU'RE OFF AND RUNNING TO CREATE AN
RDOS 3.3 COPY (WHEN YOU'RE FINISHED,
YOU'LL HAVE A 16-SECTOR DISKETTE WITH
ONLY 13 SECTORS OCCUPIED PER TRACK, BUT
YOU WON'T NOTICE IT IN USE).
SOME OF THE SSI GAMES USE THE
NORMAL DOS 3.2 ADDRESS MARKER BYTES OF
D5 AA B5. THESE SHOULD BE READ IN USING
THE "DOS 3.2 RWTS" FILE, BUT YOU STILL
NEED TO USE THE "RDOS WRITE" RWTS FOR
THE WRITING ROUTINE.
RDOS USES TRACK 1 FOR THE CATALOG,
AND IDENTIFIES FILES VIA A 24-CHARACTER
ALPHANUMERIC NAME, A LENGTH IN "BLOCKS"
AS IN PASCAL, AND THE LOCATION OF THE
STARTING BLOCK ON THE DISK:
TRACK 01 SECTOR 0 SLOT 6 DRIVE 1
BUFFER 0800 DOS 16 2BCC
=======================================
0 1 2 3 4 5 6 7 8 9 A B C D E F
---------------------------------------
00- R D O S 2 . 1 C O P Y R I G
10- H T 1 9 8 1 B 1A0010 001A0000
20- S Y S T E M B O O T
30- T 0100B1 00011A00
40- R E G 1
/ B 0A6009 DC091B00
/ / \ / \ /\ /
/ FILE TYPE \/ \/ \/
PROGRAM A,T,B / / FIRST
NAME / / BLOCK
/ NUMBER
STARTING OF
LOCATION BLOCKS
THE STARTING BLOCK IS EQUAL TO THE
TRACK NUMBER MULTIPLIED BY 13 PLUS THE
SECTOR NUMBER (1A00 IS REALLY 001A,
WHICH IS DECIMAL 26, OR TRACK 2, SECTOR
0). IF YOU LOOK THROUGH THE CATALOG
TRACK WITH THE INSPECTOR, YOU FIND THE
BEGINNING OF THE CATALOG AS EXPECTED IN
T1,S0. LOOKING FOR THE CONTINUATION IN
T1,S1, HOWEVER, BRINGS YOU TO THE NEXT
SURPRISE HELD BY RDOS: THERE IS NO
SECTOR INTERLEAVING IN SOFTWARE; IT IS
ALL DONE BY THE SECTOR NUMBER
SEQUENCING DURING SSI'S INITIALIZE
ROUTINE. THE IMPORTANCE OF SECTOR
INTERLEAVING IS DISCUSSED IN "BAG OF
TRICKS", AND IN A SOFTALK ARTICLE ABOUT
A YEAR AGO BY WORTH AND LECHNER. (DOS
USES A LOOKUP TABLE AT $BFA8 TO CHANGE
THE SECTOR NUMBER READ FROM THE VALUE
READ OFF THE DISK ("PHYSICAL SECTOR")
TO THE NUMBER IT THINKS IT SHOULD BE
("LOGICAL SECTOR"). SSI USES AN
"ASCENDING 7" INTERLEAVE SCHEME, WHICH
MEANS THAT THE SEQUENCE OF SECTORS ON
THE DISK, AS READ BY DOS 3.3 WITH ITS
INTERLEAVE TABLE, IS:
0,7,E,6,D,5,C,4,B,3,A,2,9,1,8,F.
THE SECOND CATALOG SECTOR, THEN,
APPEARS TO BE SECTOR 7. IF YOU INTEND
TO DO ANY AMOUNT OF PLAYING AROUND WITH
ONE OF THESE DISKS, USE THE "RDOS
WRITE" RWTS FROM THE COPYB DISK, OR
CHANGE BYTES $BE2A-BE2D TO $EA'S WITH
THE INSPECTOR. THIS OMITS THE TABLE
LOOKUP AND MAKES THE SECTOR NUMBERS
FOLLOW THE SEQUENCE AS USED BY RDOS.
NEXT, COPY THE FILE CALLED RDOS
3.3 FROM THE COPYB DISK (OR TRACK 0 OF
ANY OF THE RECENTLY UNPROTECTED SSI
SERIES) ONTO TRACK ZERO, SECTORS 0-D.
YOU WOULD EXPECT TO HAVE A WORKING COPY
OF THE GAME AT THIS POINT, BUT THERE
ARE STILL A COUPLE OF SURPRISES IN
STORE FOR YOU (I SAID IT WAS A
CHALLENGE!). THERE ARE SEVERAL
DIFFERENT SECONDARY PROTECTION SCHEMES
USED TO DEFEAT VARIOUS COPIERS, USUALLY
GOING UNDER THE INNOCUOUS NAME OF
"QWERTY". THE MOST COMMON OF THESE
READS IN AN ADDRESS FIELD FROM TRACK 0,
DELAYS A BIT, AND LOOKS FOR AN $EE AS
THE NEXT BYTE ON THE TRACK. IF IT FINDS
IT, A 0 IS STORED IN LOCATION 0,
OTHERWISE THE DISK SPINS FOREVER. BY
CHANGING BYTES $28-29 TO A9 00, THIS
ANNOYANCE IS REMOVED. A SIMILAR
ROUTINE, SEEN ONLY ONCE OR TWICE, IS
CALLED @WERTY, LOOKS FOR AN $AA
FOLLOWING THE ADDRESS FIELD ON ANY
TRACK, AND REBOOTS IF IT'S NOT FOUND.
THE REMEDY HERE IS TO PUT A9 00 IN
BYTES $20-21.
RECENTLY, A MUCH MORE
SOPHISTICATED TECHNIQUE HAS BEEN USED
(GALACTIC GLADIATORS, ROAD TO
GETTYSBURG), WHICH DOES THE SSI
EQUIVALENT OF "QUARTER-TRACKING" OR
"SPIRALLING". THIS VERSION OF QWERTY
READS IN FOUR PAGES OF SEQUENCIAL BYTES
FROM EACH OF THE FOUR ADJACENT
HALF-TRACKS FROM 20.5 TO 22.0, STORING
THEM AT $1000-1FFF. THE THREE BYTES
FOLLOWING THE FOUR PAGES WORTH ARE USED
AS THE ADDRESS MARKER FOR THE DATA ON
THE NEXT HALF-TRACK (AS WITH ALL THESE
PROTECTION TECHNIQUES, THE "SECTORS"
ARE SKEWED SO THAT THERE IS NEVER VALID
DATA OVERLAPPING ON ADJACENT
HALF-TRACKS). THIS APPROACH EFFECTIVELY
DEFEATS COPIERS LIKE NA II AND
LOCKSMITH, WHICH WRITE AN ENTIRE TRACK
AND OBLITERATE DATA ON ANY ADJACENT
HALF-TRACK. AFTER READING IN THE DATA,
THE MEMORY VALUES ARE EXCLUSIVE-ORED
WITH THE ADDRESS (1000 CONTAINS 00,
1001 CONTAINS 01, ETC.), AND IF AN
ERROR IS FOUND, IT REBOOTS THE DISK.
PLACING AN RTS ($60) AT THE ENTRY POINT
OF $A0F0 WILL AVOID THE ENTIRE ISSUE
AND MAKE THE COPYA VERSION RUN.
THE FINAL (I HOPE) HURDLE TO USING
RDOS 3.3 IS THE PROGRAM WHICH
INITIALIZES A SAVE GAME DISKETTE IN
AN RDOS-COMPATIBLE FORMAT. IT IS CALLED
SSI.INIT AND LOADS INTO $800-AFF (IT IS
USUALLY ACCESSED VIA A 'CALL 2800' FROM
A BASIC PROGRAM). SINCE IT ONLY WRITES
ADDRESS FIELDS, AND NOT DATA SECTORS
(WITH NO VERIFY), IT IS A VERY FAST
INIT. ALL THAT'S NECESSARY TO GENERATE
A DISK COMPATIBLE WITH RDOS 3.3 IS TO
REPLACE THE D4 AA B7 (OR D5 AA B5)
ADDRESS MARKER BYTE WITH D5 AA 96:
CHANGE BYTES $8F5 TO $D5 AND $8FF TO
$96.
NOW FOR THE BAD NEWS: WHILE RDOS
IS FAST, PRIMARILY BECAUSE ALL FILES
ARE STORED IN SEQUENCIAL BLOCKS, RDOS
3.3 IS SLOW BECAUSE OF THE SECTOR
INTERLEAVE USED BY SSI (THE DISK MUST
MAKE AN ALMOST AN ENTIRE REVOLUTION FOR
EACH SECTOR THAT IS READ IN). IT IS
FAIRLY EASY TO ADD AN INTERLEAVE LOOKUP
TABLE TO RDOS 3.3 (IT'S CALLED RDOS
3.3A ON THE DISK), BUT BAD THINGS
HAPPENED DURING MY ATTEMPTS TO
INCORPORATE IT INTO THE SSI.INIT
PROGRAM. THE CODE FROM $851 TO $86B
NEEDS MORE ALTERATION THAN I HAD
PATIENCE FOR (THERE'S ROOM FOR A PATCH
IN $9D7-9FF), AND WOULD BE WORTH THE
EFFORT IF SOME AMBITIOUS KRACKIST OUT
THERE COULD FIND THE TIME...
FINALLY, AS A TYPICAL EXAMPLE OF
MURPHY'S LAW ("IF ANYTHING CAN GO
WRONG, IT WILL, AND AT THE WORST
POSSIBLE MOMENT), THAT AFTER DOING ALL
THIS AND CONVERTING SOME 20 GAMES, THE
VERY LAST ONE I TRIED WAS GERMANY 1985.
THIS IS A FAIRLY RECENT PUBLICATION OF
SSI WHICH IS COMPLETELY WRITTEN IN
MACHINE LANGUAGE, DOES NOT USE RDOS AT
ALL, AND WILL REQUIRE A TOTALLY
DIFFERENT APPROACH TO UNPROTECTION. IN
THE WORDS OF RICKY SKAGGS
("HEARTBROKE", FROM HIS "HIGHWAYS AND
HEARTACHES" ALBUM):
"PRIDE, WHEN YOU'RE RICH,
IS A BORE WHEN YOU'RE LONELY,
STILL MADNESS PREVAILS UPON
REASON TO YIELD.
BUT ALL IS NOT LOST, IT IS ONLY
MISTAKEN,
IT'S A SMALL CONSOLATION, BUT I
KNOW JUST HOW YOU FEEL.
NOBODY SAID IT WAS GOING TO BE
EASY,
WE ALL HAVE OUR WEAK SIDES AND
NEED SOME GOOD TOUCHIN'.
NOBODY SAID THAT IT WOULD NOT BE
WORTH IT,
THE HUMAN CONDITIONS -- CONTINUE
AS SUCH."
SEE YOU "SOON" WITH ANOTHER IN THE
BASICS OF KRACKING SERIES--"WHERE DO I
BEGIN..."
SORRY, NO MORE FOR THIS CALL!
===================