----------------ColorMe---------------- A 4am crack 2014-04-29 --------------------------------------- ColorMe: The Computer Coloring Kit is a double hi-res paint program, marketed as "a computer coloring program especially for children." It was released in 1985 and distributed by Mindscape, Inc. under the "Sprout" software brand ("Fun learning software for ages 4 and up"). COPYA immediately fails to read the disk. EDD 4 bit copy gives no read errors, but the copy does not work. It boots, ponders the meaning of life, then reboots. My trusty Copy ][+ nibble editor shows standard address and data prologue on all tracks, but a non-standard epilogue. My trusty Copy ][+ sector editor, when patched to ignore epilogues and checksums ("P" to get to "Sector Editor Patcher," then select "DOS 3.3 Patched"), is able to read every sector on every track. That means I should be able to convert this to a standard disk with a $B942 patch. [S6D1=DOS 3.3 master disk] ]PR#6 ]CALL -151 *B942:18 <-- ignore errors on address and data epilogues *3D0G ]RUN COPYA [S6D1=original disk] [S6D2=blank disk] ...read read read... ...grind grind grind... ...write write write... OK, COPYA finished successfully. COPYA is very proud of itself. COPYA is a good boy. COPYA gets a gold star and a participation trophy. Of course, the copy that it creates doesn't actually work (it reboots, just like the bit copy I made with EDD 4), but COPYA is blissfully ignorant of its failure. The Dunning-Kruger effect in all its 8-bit glory. Time to bring out the big guns. [S6D1=original disk] [S5D1=my work disk] ]PR#5 CAPTURING BOOT0 ...reboots slot 6... ...reboots slot 5... SAVING BOOT0 ]CALL -151 *800<2800.28FFM *801L 0801- A5 27 LDA $27 0803- C9 09 CMP #$09 0805- D0 13 BNE $081A 0807- 8D 0C C0 STA $C00C 080A- 8D 00 C0 STA $C000 080D- 8A TXA 080E- 4A LSR 080F- 4A LSR 0810- 4A LSR 0811- 4A LSR 0812- 09 C0 ORA #$C0 0814- 85 3F STA $3F 0816- A9 5C LDA #$5C 0818- 85 3E STA $3E 081A- CE 75 08 DEC $0875 081D- 30 03 BMI $0822 081F- 6C 3E 00 JMP ($003E) 0822- 4C 00 16 JMP $1600 Interesting. An entirely custom boot0 routine. It reuses the disk controller ROM routine at $C65C to read more sectors from track 0, in ascending order, into ascending memory addresses. *875 0875- 0F Looks like it's reading the entire rest of track 0 into $0900..$17FF. Let's see what's at $1600. *9600