------First Start Writing Program------ A 4am crack 2015-12-18 --------------------------------------- Name: First Start Writing Program Genre: educational Year: 1994 Publisher: Troll Associates Media: single-sided 5.25-inch floppy OS: ProDOS 1.7 Previous cracks: none Similar cracks: #446 The Quarter Mile 4.1 #439 Graphic Converter #253 Force and Motion ~ 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 grinds on boot Copy ][+ nibble editor T00 -> standard prologues T01+ -> modified address prologue ("AB BF D5") also modified address epilogue (not sure what exactly, not consistent?) Disk Fixer ["O" -> "Input/Output Control"] set "CHECKSUM ENABLED" = "NO" T00 readable, looks like ProDOS (including bootloader and catalog) ["O" -> "Input/Output Control"] set Address Prologue to "AB BF D5" turn off epilogue checking other tracks readable Why didn't COPYA work? modified prologues and epilogues Why didn't Locksmith FDB work? modified prologues and epilogues Why didn't my EDD copy work? I don't know. Maybe a nibble check during boot? Converting the disk to a standard format will be tricky. Super Demuffin doesn't have an option to ignore epilogue bytes entirely. (I would feel uncomfortable doing that anyway -- what if the original disk had a legitimate bad sector?) Advanced Demuffin requires a DOS 3.3-shaped RWTS, but this disk uses ProDOS. The automated tools I've built don't work well on ProDOS. (Note to self: fix that someday.) Next steps: 1. Boot trace the original disk to capture the PRODOS file in memory 2. Use the RWTS inside the PRODOS file to build a DOS-shaped RWTS that can read the original disk 3. Use Advanced Demuffin to convert the disk to a standard format 4. Patch the bootloader and/or the PRODOS file to be able to read a standard format disk 5. Find and disable the nibble check ~ Chapter 1 In Which We Ponder Whether Two Heads Are Better Than One [S6,D1=original disk] [S5,D1=my work disk] ]PR#5 CAPTURING BOOT0 ...reboots slot 6... ...reboots slot 5... SAVING BOOT0 ]BLOAD BOOT0,A$800 ]CALL -151 *801L . . nothing suspicious, which is, in and . of itself, quite suspicious . ; jump to PRODOS file once loaded 08FC- 4C 00 20 JMP $2000 OK, let's interrupt the boot there. *9600 At $B8, load "RWTS LIKE PRODOS" from drive 1 ["6" to switch to slot 6] ["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 --^-- [S7,D1=ProDOS hard drive] ]PR#7 ]CAT,S6,D2 /TROLL.WRITE NAME TYPE BLOCKS MODIFIED PRODOS SYS 32 9-AUG-88 HELLO.SYSTEM SYS 31 15-SEP-93 A BIN 60 15-SEP-93 G BIN 18 15-SEP-93 H BIN 21 15-SEP-93 I BIN 68 15-SEP-93 Q BIN 6 15-SEP-93 X BIN 25 15-SEP-93 T BIN 10 15-SEP-93 Z BIN 1 10-JUN-06 BLOCKS FREE: 1 BLOCKS USED: 279 ]PREFIX /TROLL.WRITE ]-HELLO.SYSTEM ...works... ~ Chapter 3 In Which Our Adventure Comes To A Sudden But Satisfying Conclusion [S6,D1=demuffin'd disk] ]PR#6 ...program boots and runs... Wait, what? Why did the demuffin'd copy work? Advanced Demuffin wrote out the data from each sector onto a standard disk that uses "D5 AA 96" prologue and "DE AA EB" epilogue. The RWTS finds the first $D5, doesn't find a timing bit, but it finds the remaining standard prologue (AA 96) and decides that it found a valid address field. Thus, no RWTS patches are necessary. But then why didn't the EDD copy work? EDD preserved the original address prologue but not the timing bits. The prologue checker finds the $D5 (at $55B0) but no timing bit after it (at $55B8), so the disk can't read itself. There was never any separate nibble check; the structure of the disk itself is designed to foil bit copiers. Quod erat liberandum. --------------------------------------- A 4am crack No. 526 ------------------EOF------------------