480 lines
16 KiB
Plaintext
480 lines
16 KiB
Plaintext
***************************************
|
||
* *
|
||
* *
|
||
* 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!
|
||
|
||
===================
|
||
|