View Single Post
Old 11 July 2011, 12:05   #11
Cosmos
Banned
 
Join Date: Jan 2007
Location: France
Posts: 655
@coders


1st bug :
move.l a6,-(sp)
move.l 4.w,a6
jsr R_FreeVec(a6)
move.l (sp)+,a6 ; d0 is trashed here : R_FreeVec return nothing
moveq #$69,d1
rol.l #1,d1
bra.b JL_0_241FE
JL_0_241F8
move.l #$000000D9,d1
JL_0_241FE
bsr.w AJL_0_204E6
...
...

AJL_0_204E6
move.l d2,-(sp)
move.l d0,d2
moveq #-1,d1
bsr.b JL_0_204F8
move.l (sp)+,d2
rts

JL_0_204F8
bsr.b JL_0_20484
lea $38(a0),a0
tst.l d1
bne.b JL_0_20516
move.l (a0),d1
move.l d1,d0
rts

JL_0_20516
move.l (a0),d1
move.l d2,(a0)
move.l d1,d0
rts

JL_0_20484
move.l 4.w,a0
move.l $114(a0),a0
add.w #$005C,a0
rts

The issues are 'moveq #$69,d1/rol.l #1,d1' and 'move.l #$000000D9,d1' : must be d0, of course !

It's a big bug, because this subroutine is called by a lot of functions into the dos.library...




2nd bug :
R_ExNext
moveq #$18,d0
tst.l d1
bne.b JL_0_243A4
move.l #$000000D3,d1
bsr.w AJL_0_204E6
moveq #0,d0
rts

JL_0_243A4
move.l d2,a0
clr.l $E0(a0)
move.l d2,-(sp)
lsr.l #2,d2
move.l d2,-(sp)
move.l sp,a0
bsr.w JL_0_22440
addq.w #4,sp
move.l (sp)+,d2
rts


JL_0_22440
link a5,#-$18
movem.l d2-d7/a2-a3,-(sp)
move.l d1,d7
move.l d0,d6
move.l a0,-$14(a5)
move.l -$14(a5),a0
move.l (a0),d0
...
...



AJL_0_204E6
move.l d2,-(sp)
move.l d0,d2
moveq #-1,d1
bsr.b JL_0_204F8
move.l (sp)+,d2
rts

'moveq #$18,d0' is for JL_0_243A4. 'move.l #$000000D3,d1' must be 'move.l #$000000D3,d0'


So, coders, are you agree with me ?

Last edited by Cosmos; 11 July 2011 at 13:10.
Cosmos is offline  
 
Page generated in 0.04446 seconds with 11 queries