-----------Gertrude's Puzzles---------- A 4am crack 2015-05-31 --------------------------------------- Name: Gertrude's Puzzles Version: 1.2 Genre: educational Year: title screen says "1982" disk label says "1984" Authors: Perl, Grimm, Robinett Publisher: The Learning Company Media: single-sided 5.25-inch floppy OS: Pronto-DOS Other versions: none (preserved here for the first time) Asimov has an incomplete copy of a previous version created with a Wildcard 2 copy card Identical cracks: - Gertrude's Secrets, Bumble Games, Juggles' Rainbow, Moptown Parade, Reader Rabbit, Wizard of Words, Moptown Hotel (The Learning Company) - Xevious (Mindscape) - The Notable Phantom (DesignWare) - Animal Kingdom, Race Car 'Rithmetic, Magical Myths (Unicorn Software) - Pitstop II (Epyx) - Microzine issues 12, 13, 17, and 18 (Scholastic) ~ Chapter 0 In Which Various Automated Tools Fail In Interesting Ways COPYA immediate disk read error Locksmith Fast Disk Backup unable to read any track EDD 4 bit copy (no sync, no count) errors on T12+ copy fills screen with garbage and reboots Copy ][+ nibble editor all tracks use standard prologues (address: D5 AA 96, data: D5 AA AD) but modified epilogues (address: FF FF FF, data: FF FF FF) T12+ -> unformatted (confirmed with "hi-res disk scan" feature) Disk Fixer ["O" -> "Input/Output Control"] set Address Epilogue to "FF FF FF" set Data Epilogue to "FF FF FF" Success! All tracks readable! T00 -> looks like a DOS 3.3 RWTS T11 -> DOS 3.3 disk catalog T01,S07 -> startup program is "PUZZLEHELLO&TITLER.OBJ0" Why didn't COPYA work? modified epilogue bytes (every track) Why didn't Locksmith FDB work? modified epilogue bytes (every track) Why didn't my EDD copy work? probably a nibble check during boot Next steps: 1. AUTOTRACE to capture RWTS 2. Advanced Demuffin to convert disk to standard format 3. Patch RWTS (if necessary) 3. Find nibble check and bypass it ~ Chapter 1 In Which We Attempt To Use The Original Disk As A Weapon Against Itself [S6,D1=original disk] [S6,D2=blank disk] [S5,D1=my work disk] ]PR#5 CAPTURING BOOT0 ...reboots slot 6... ...reboots slot 5... SAVING BOOT0 /!\ BOOT0 JUMPS TO $08C0 CAPTURING BOOT1 ...reboots slot 6... ...reboots slot 5... SAVING BOOT1 SAVING RWTS /!\ NIBBLE CHECK AT $BB00 ]BRUN ADVANCED DEMUFFIN 1.5 ["5" to switch to slot 5] ["R" to load a new RWTS module] --> At $B8, load "RWTS" from drive 1 ["6" to switch to slot 6] ["C" to convert disk] [press "Y" to change default values] --v-- ADVANCED DEMUFFIN 1.5 (C) 1983, 2014 ORIGINAL BY THE STACK UPDATES BY 4AM ======================================= INPUT ALL VALUES IN HEX SECTORS PER TRACK? (13/16) 16 START TRACK: $00 START SECTOR: $00 END TRACK: $11 <-- change this END SECTOR: $0F INCREMENT: 1 MAX # OF RETRIES: 0 COPY FROM DRIVE 1 TO DRIVE: 2 ======================================= 16SC $00,$00-$11,$0F BY$01 S6,D1->S6,D2 --^-- And here we go... --v-- ADVANCED DEMUFFIN 1.5 (C) 1983, 2014 ORIGINAL BY THE STACK UPDATES BY 4AM =======PRESS ANY KEY TO CONTINUE======= TRK:.................. +.5: 0123456789ABCDEF0123456789ABCDEF012 SC0:.................. SC1:.................. SC2:.................. SC3:.................. SC4:.................. SC5:.................. SC6:.................. SC7:.................. SC8:.................. SC9:.................. SCA:.................. SCB:.................. SCC:.................. SCD:.................. SCE:.................. SCF:.................. ======================================= 16SC $00,$00-$11,$0F BY1.0 S6,D1->S6,D2 --^-- ]PR#5 ]CATALOG,S6,D2 C1983 DSR^C#254 005 FREE B 009 PUZZLESGOOSE.O B 034 ADV #108 B 002 PUZZLESRANDOM.O B 005 TUTFONT B 055 PUZZLE WORLD.IIE B 033 PUZZLELOGO B 015 PUZZLEHELLO&TITLER.OBJ0 B 026 PUZZLECODE.O B 055 PUZZLE WORLD ]BRUN PUZZLEHELLO&TITLER.OBJ0 ...works... [S6,D1=demuffin'd copy] ]PR#6 ...fills screen with garbage, reboots endlessly... Let's go find that nibble check. ~ Chapter 2 In Which We Run Into An Old Friend ]PR#5 ]BLOAD BOOT0,A$800 ]CALL -151 *801L . . all normal until... . 084A- 4C C0 08 JMP $08C0 *8C0L 08C0- 8E E9 B7 STX $B7E9 08C3- 6C FD 08 JMP ($08FD) *BLOAD BOOT1,A$2600 *FE89G FE93G ; disconnect DOS *B600<2600.2FFFM ; move RWTS into place *B700L B700- 20 00 BB JSR $BB00 *BB00L BB00- A0 00 LDY #$00 BB02- B9 00 BB LDA $BB00,Y BB05- 99 00 02 STA $0200,Y BB08- 88 DEY BB09- D0 F7 BNE $2B02 BB0B- 60 RTS *20C