I sticked the asm dump of the first track in a public gist here
State of the art first adf tracks asm dump
I can locate some code looking for the markers. For example
Code:
000DC1C4 loc_DC1C4: ; CODE XREF: RAM:000DC1C8j
000DC1C4 cmpi.w #$4489,(a2)+
000DC1C8 bne.s loc_DC1C4
000DC1CA cmpi.w #$4489,(a2)
000DC1CE bne.s loc_DC1D2
000DC1D0 addq.l #2,a2
But then I'm not sure where to go from there.
A little guidance would be most welcome.
My understanding so far is that it starts copying what's in between addresses
0xDC034 and 0xDC2B4 (relative to PC) to absolute address $100 and then jumps to $100, executing the copied code.
Code:
000DC01E lea $DC034,a0
000DC022 lea $DC2B4,a1
000DC026 lea ($100).w,a2
000DC02A
000DC02A loc_DC02A: ; CODE XREF: RAM:000DC02Ej
000DC02A move.b (a0)+,(a2)+
000DC02C cmpa.l a0,a1
000DC02E bne.s loc_DC02A
000DC030 jmp $100
Before doing that though I believe it calls a function:
Code:
000DC00C bsr.w sub_DC2B4
000DC010 move.w #$7FFF,(word_DFF09A).l
000DC018 movea.l #$9A0,sp
if I look at sub_DC2B4, it seems that the function is checking stuff, like what Amiga, memory extension or what not maybe ? Got no idea TBH.
So now I need to understand the code which has been copied ...
Will try to do loc_DC034, loc_DC03E & loc_DC070 when I got a chance but a few hints for the first blocks would me most welcome.