------------Blazing Paddles------------ A 4am crack 2014-06-10 --------------------------------------- "Blazing Paddles" is a 1984 paint program distributed by Baudville, Inc. COPYA gives no read errors, but the copy does not work. (EDD 4 bit copy fares no better.) It displays the two strings "BLAZING PADDLES" and "04431" (apparently a version number of sorts), then grinds the disk in a most unusual fashion (hopping back and forth between two tracks? trying to read a quarter track? I've never heard anything like it) until I frantically power off in an attempt to save my 30 year old floppy drive from twerking right off my desk. Time for boot tracing, I suppose. [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 ; starts off looking like DOS 3.3 boot0 0801- A5 27 LDA $27 0803- C9 09 CMP #$09 0805- D0 18 BNE $081F 0807- A5 2B LDA $2B 0809- 4A LSR 080A- 4A LSR 080B- 4A LSR 080C- 4A LSR 080D- 09 C0 ORA #$C0 080F- 85 3F STA $3F 0811- A9 5C LDA #$5C 0813- 85 3E STA $3E 0815- 18 CLC ; slightly unusual -- it appears to ; keep the target address and sector ; count in $084A/B instead of $08FE/F 0816- AD 4A 08 LDA $084A 0819- 6D 4B 08 ADC $084B 081C- 8D 4A 08 STA $084A 081F- AE 4B 08 LDX $084B ; jump out of the sector read loop here 0822- 30 28 BMI $084C 0824- BD 39 08 LDA $0839,X 0827- 85 3D STA $3D 0829- CE 4B 08 DEC $084B 082C- AD 4A 08 LDA $084A 082F- 85 27 STA $27 0831- CE 4A 08 DEC $084A 0834- A6 2B LDX $2B ; jump to disk controller ROM routine ; to read sectors 0836- 6C 3E 00 JMP ($003E) . . . ; looks like the loop above will read ; all of track 0 into $B000..$BFFF 084A- B0 084B- 0F ; out of the sector read loop -- ; initialize keyboard/video/text mode ; and clear screen 084C- 20 93 FE JSR $FE93 084F- 20 89 FE JSR $FE89 0852- 20 2F FB JSR $FB2F 0855- 20 58 FC JSR $FC58 ; these two subroutines appear to copy ; the title and version number to the ; text page 0858- A0 1A LDY #$1A 085A- 20 C2 08 JSR $08C2 085D- C8 INY 085E- 20 BC 08 JSR $08BC ; normal-looking RWTS parameter table ; initialization stuff here 0861- A5 2B LDA $2B 0863- 8D E9 B7 STA $B7E9 0866- 8D F7 B7 STA $B7F7 0869- 4A LSR 086A- 4A LSR 086B- 4A LSR 086C- 4A LSR 086D- AA TAX 086E- A9 00 LDA #$00 0870- 8D F4 03 STA $03F4 0873- 8D 78 04 STA $0478 0876- 0A ASL 0877- 9D 78 04 STA $0478,X 087A- 9D F8 04 STA $04F8,X 087D- A9 01 LDA #$01 087F- 8D F8 B7 STA $B7F8 0882- 8D EA B7 STA $B7EA 0885- A2 FF LDX #$FF 0887- 9A TXS 0888- A2 00 LDX #$00 088A- 8E EB B7 STX $B7EB ; check for Applesoft in ROM, display ; error message if not found 088D- AD 82 C0 LDA $C082 0890- AD 00 E0 LDA $E000 0893- C9 4C CMP #$4C 0895- F0 12 BEQ $08A9 0897- AD 80 C0 LDA $C080 089A- AD 00 E0 LDA $E000 089D- C9 4C CMP #$4C 089F- F0 03 BEQ $08A4 08A1- 4C AC 08 JMP $08AC 08A4- A9 FF LDA #$FF 08A6- 8D B7 B2 STA $B2B7 ; execution continues here 08A9- 4C 00 BB JMP $BB00 Since this boot0 code bears little resemblance to DOS 3.3, I'll need a custom trace routine to capture the code it loads into $B000..$BFFF. *9600