View Single Post
Old 07 March 2018, 23:36   #3
a.nonyme
 
Posts: n/a
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.
 
 
Page generated in 0.04426 seconds with 11 queries