View Single Post
Old 11 May 2014, 17:43   #84
Registered User
john1979's Avatar
Join Date: Jun 2012
Location: UK
Age: 36
Posts: 748
Okay, some messing about in a hex editor and I managed to "fix" this myself.

As Stingray stated, BSR.L does not work on 68000 Amiga.

Firstly I had to find out what is hexcode for this instruction, it is 61 FF which I found at offset 0x1E in the ADF.

Apparently the FF denotes the following address is a 32bit long, but we want a 16bit word that the 68000 can understand. So you change the FF to 00 which gives us a BSR.W instruction.

Then change the following 32 bit address "00 00 00 18" to a 16 bit one "00 18".

That left me with a gap of 00 00 before the rest of the code. So I put in a NOOP (4E 71) to fill the space. No idea if this was even necessary. (Since I have no real idea what I'm doing )

Great! But the boot block checksum is now invalid and the Amiga won't run it. Disaster! So I found a simple tool on aminet to recalculate the checksum called "bb"

bb -c DF0:
Recalculated from
5B 34 D0 B2 to
5B 1C 83 58

And voila! The A600 runs the disk successfully and I hear the sweet sounds of the Hoffman on my TV.

Since I know practically zero about any of this I had a lot of fun playing about it with this Sunday afternoon

Fixed ADF here:

I also made a FLAC recording of the demo straight from the back of an A1200 with a 60% stereo mix down (ala SOAMC). Since the mp3 in the zip file is mono, this might be preferable to some:

Last edited by john1979; 11 May 2014 at 19:46.
john1979 is offline  
Page generated in 0.05479 seconds with 9 queries