--------Little People's Puzzles-------- A 4am crack 2017-08-24 --------------------------------------- Name: Little People's Puzzles: Things That Go Genre: educational Year: 1984 Credits: F. Messina, C. Swenson Publisher: Reader's Digest Services Platform: Apple ][+ or later Media: single-sided 5.25-inch floppy OS: DOS 3.3 Previous cracks: none ~ Chapter 0 In Which Various Automated Tools Fail In Interesting Ways COPYA disk read error on first pass Locksmith Fast Disk Backup reads track $00-$02 and track $11, but nothing else EDD 4 bit copy (no sync, no count) works Copy ][+ nibble editor T00-T02 -> standard T03-T10 -> modified data prologue ("D5 AA D5" instead of "D5 AA AD") T11 -> standard T12-T22 -> modified data prologue (same as T03-T10) Disk Fixer T00 -> bootloader starts off like Apple DOS 3.3 but quickly goes off into custom code ["O" -> "Input/Output Control"] set Address Prologue to "D5 AA D5" Success! T03-T10 and T12+ readable! Passport successful demuffin, but no patches --v-- READING FROM S6,D1 T00,S00 FOUND DOS 3.3 BOOTLOADER USING DISK'S OWN RWTS WRITING TO S5,D2 THE DISK WAS COPIED SUCCESSFULLY, BUT PASSPORT DID NOT APPLY ANY PATCHES. --^-- Yet, mysteriously, the copy produced by Passport is able to read itself. What? ~ Chapter 1 In Which We Angrily Investigate Why We Suddenly Have A Working Copy Poking through track $00, I found the code to match the custom data prologue. It turns out to be quite... flexible: --v-- T00,S03 ----------- DISASSEMBLY MODE ---------- 00DC:A0 20 LDY #$20 00DE:88 DEY 00DF:F0 61 BEQ $0142 00E1:BD 8C C0 LDA $C08C,X 00E4:10 FB BPL $00E1 00E6:49 D5 EOR #$D5 00E8:D0 F4 BNE $00DE 00EA:EA NOP 00EB:BD 8C C0 LDA $C08C,X 00EE:10 FB BPL $00EB 00F0:C9 AA CMP #$AA 00F2:D0 F2 BNE $00E6 00F4:A0 56 LDY #$56 00F6:BD 8C C0 LDA $C08C,X 00F9:10 FB BPL $00F6 00FB:C9 AA CMP #$AA 00FD:F0 F7 BEQ $00F6 <-- ! --^-- Did you see that? It matches #$D5 for the first nibble and $$AA for the second, as usual. But for the third nibble, it matches any value EXCEPT #$AA. If it finds #$AA, it loops back to $B8F6 to read another nibble. That explains how some tracks on the original disk can use a standard data prologue while others are non-standard. This code doesn't care either way. And now that every track on my copy uses a standard data prologue, this code still doesn't care. So no RWTS patches are required. Quod erat liberandum. --------------------------------------- A 4am crack No. 1383 ------------------EOF------------------