---------Audubon Grizzly Bears--------- ----------Wildlife Adventures---------- A 4am crack 2016-02-01 --------------------------------------- Name: Audubon Grizzly Bears: Wildlife Adventures Genre: educational Year: 1988 Executive Producer: Christopher Palmer Producer & Director: Dennis Sullivan Writing: Deborah Kovacs, Pat Relf Programming: Drew Ruscil, Dennis Sullivan Art & Music: The Dovetail Group, Inc. Gerri Brioso, Cynthia Vansant, Richard Frietas, Paul Frietas Biological Illustration: Doreen Curtin Research & Testing: Andy Henriquez Documentation: Roger DiSilvestro, Richard Chevat, Sandy Damashek, Susan Greer, Jeffrey Siegel Conceived & Produced by National Audubon Society Publisher: Advanced Ideas, Inc. Media: 5 single-sided 5.25-inch disks OS: ProDOS 1.5 Previous cracks: none Similar cracks: #339 SuperPrint #146 Math Shop #047 Deathsword Disk 1 is protected and bootable. Disks 2-5 are unprotected but unbootable. Life is like that. This has not been a haiku. ~ 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) no errors, but copy reboots endlessly Copy ][+ nibble editor standard prologues (address: D5 AA 96, data: D5 AA AD) modified epilogues (address: FF FF FF, data: FF FF FF) Disk Fixer ["O" -> "Input/Output Control"] set CHECKSUM ENABLED to "NO" Success! T00 -> looks like ProDOS bootloader and disk catalog (volume name is "GRIZZLYBEARS") 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. In my experience, computers do not spontaneously reboot unless someone tells them to. Next steps: 1. Super Demuffin to convert disk to standard format 2. patch RWTS to read standard format (if necessary) 3. find nibble check and disable it ~ Chapter 1 In Which We Try To Choose The Right Tool For The Job, And It Fails Miserably My AUTOTRACE script doesn't do much for me on ProDOS disks, but it looks like every track has the same prologues and epilogues, so I'm going to convert it with Super Demuffin. When you first run Super Demuffin, it asks for the parameters of the original disk. In this case, the prologue bytes are the same, but the epilogues are "FF FF FF" instead of "DE AA EB". --v-- SUPER-DEMUFFIN AND FAST COPY Modified by: The Saltine/Coast to Coast Address prologue: D5 AA 96 Address epilogue: FF FF FF DISK ^^^^^^^^ ORIGINAL *change from "DE AA EB" Data prologue: D5 AA AD Data epilogue: FF FF FF ^^^^^^^^ *change from "DE AA EB" Ignore write errors while demuffining! D - Edit parameters - Advance to next parm - Exit edit mode R - Restore DOS 3.3 parameters O - Edit Original disk's parameters C - Edit Copy disk's parameters G - Begin demuffin process --^-- Pressing "G" switches to the Locksmith Fast Disk Copy UI. It assumes that both disks are in slot 6, and that drive 1 is the original and drive 2 is the copy, so let's do that. [S6,D1=original disk] [S6,D2=blank disk] --v-- LOCKSMITH 7.0 FAST DISK BACKUP R*..............**.................. W*********************************** HEX 00000000000000001111111111111111222 TRK 0123456789ABCDEF0123456789ABCDEF012 0................D.................. 1...............D................... 2...............D................... 3...............D................... 4...............D................... 5...............D................... 6................................... 7................................... 8D..............D................... 9D..............D................... AD...............D.................. BD...............D.................. C................D.................. D................................... 12 E................D.................. F...............D................... [ ] PRESS [RESET] TO EXIT --^-- That's... odd. Revisiting the original disk in my trusty Disk Fixer sector editor, I discover the problem: those "unreadable" sectors are actually in a standard format. That is, they use the normal "DE AA EB" epilogues instead of the non-standard "FF FF FF" epilogues that all the other sectors use. I suspect the RWTS on disk is flexible about epilogues when it reads, but it always uses standard epilogues when it writes. It started out all uniform, but at some point it made some changes to one or more files, which wrote out standard sectors on tracks $0F/$10, plus the disk catalog on track $00. But I'm going to trace the boot to make sure, before I make any more assumptions. ~ Chapter 2 In Which We Do It The Hard Way, And Explain Why [S6,D1=original disk] [S5,D1=my work disk] ]PR#5 CAPTURING BOOT0 ...reboots slot 6... ...reboots slot 5... SAVING BOOT0 As I said, my AUTOTRACE script doesn't get very far tracing ProDOS (note to self: fix that someday), but the boot sector looks like a fairly standard ProDOS bootloader. I can trap it at $08FC to capture the PRODOS file in memory. ]CALL -151 *9600 At $B8, load "RWTS BCC,D1" [press "6" to switch to slot 6] [press "C" to convert disk] --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-$22,$0F BY1.0 S6,D1->S6,D2 --^-- Whew. That was a lot of work, but it was worth it to ensure that the conversion is clean and the original disk is free of bad sectors. ]PR#6 ...reboots endlessly... Now the real fun begins. ~ Chapter 4 In Which We Run Into An Old Friend Let's take another look at that "standard" bootloader I captured. [S6,D1=original disk] [S5,D1=my work disk] ]PR#5 ]BLOAD BOOT0,A$800 ]CALL -151 *801L ; This looks like the standard ProDOS ; boot0 code, which is unsurprising, ; since the original disk loads ProDOS 0801- 38 SEC 0802- B0 03 BCS $0807 0804- 4C 32 A1 JMP $A132 0807- 86 43 STX $43 0809- C9 03 CMP #$03 080B- 08 PHP 080C- 8A TXA 080D- 29 70 AND #$70 080F- 4A LSR 0810- 4A LSR 0811- 4A LSR 0812- 4A LSR 0813- 09 C0 ORA #$C0 0815- 85 49 STA $49 0817- A0 FF LDY #$FF 0819- 84 48 STY $48 081B- 28 PLP 081C- C8 INY 081D- B1 48 LDA ($48),Y 081F- D0 3A BNE $085B 0821- B0 0E BCS $0831 0823- A9 03 LDA #$03 0825- 8D 00 08 STA $0800 0828- E6 3D INC $3D 082A- A5 49 LDA $49 082C- 48 PHA 082D- A9 5B LDA #$5B 082F- 48 PHA 0830- 60 RTS ; hey now, this is not standard 0831- 4C 00 09 JMP $0900 Let's see what's lurking at $0900. To do this, I'll need to interrupt the boot process at $0831, after the code is loaded into memory but before it gets executed. *9600