;Loader used in the SKID ROW crack of "JUPITER MASTERDRIVE"
;Unknown author, ripped by WK
; was called like this in the crack:-
;
; movem.l d0-a6,-(sp)
; movea.l (dword_164).l,a0 ; mfmbuff
; movea.l (dword_174).l,a1 ; load addr
; move.l (dword_170).l,d0 ; disk offset
; move.l (dword_16C).l,d1 ; filesize
; bsr.s sub_6F428
; moveq #0,d0
; tst.l d0
; movem.l (sp)+,d0-a6
; rts
; ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ S U B R O U T I N E ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ
sub_6F428:
lea off_6F604(pc),a4
move.l a0,8(a4)
move.l a1,(a4)
adda.l d1,a1
move.l a1,4(a4)
divu.w #$1600,d0
move.w d0,$C(a4)
swap d0
move.w d0,$E(a4)
lea ($BFD100).l,a5
lea ($DFF000).l,a6
bsr.s sub_6F486
bsr.s sub_6F4A8
loc_6F456:
bsr.s sub_6F4D6
move.l 4(a4),d0
cmp.l (a4),d0
beq.s locret_6F468
addq.w #1,$C(a4)
bsr.s sub_6F46A
bra.s loc_6F456
locret_6F468:
rts
sub_6F46A:
move.w $C(a4),d0
btst #0,d0
bne.s locret_6F484
bclr #1,(a5)
bclr #0,(a5)
nop
bset #0,(a5)
bsr.s sub_6F4CC
locret_6F484:
rts
sub_6F486:
move.b #$7F,(a5)
moveq #3,d0
bclr d0,(a5)
bset #1,(a5)
loc_6F492:
btst #4,$F01(a5)
beq.s locret_6F484
bclr #0,(a5)
nop
bset #0,(a5)
bsr.s sub_6F4CC
bra.s loc_6F492
sub_6F4A8:
move.w $C(a4),d0
divu.w #2,d0
bclr #1,(a5)
tst.w d0
beq.s locret_6F4CA
subq.w #1,d0
loc_6F4BA:
bclr #0,(a5)
nop
bset #0,(a5)
bsr.s sub_6F4CC
dbf d0,loc_6F4BA
locret_6F4CA:
rts
sub_6F4CC:
move.w #$F40,d7
loc_6F4D0:
dbf d7,loc_6F4D0
rts
sub_6F4D6:
move.w $C(a4),d0
btst #0,d0
bne.s loc_6F4E6
bset #2,(a5)
bra.s loc_6F4EA
loc_6F4E6:
bclr #2,(a5)
loc_6F4EA:
bsr.s sub_6F55C
move.l 4(a4),d3
moveq #0,d0
move.w $E(a4),d0
clr.w $E(a4)
divu.w #$200,d0
swap d0
move.w d0,$10(a4)
swap d0
mulu.w #$200,d0
moveq #0,d1
add.l d0,d1
loc_6F50E:
moveq #0,d2
movea.l 8(a4),a0
lea unk_6F616(pc),a2
loc_6F518:
cmp.w (a2),d1
beq.s loc_6F522
addq.l #2,a2
addq.w #1,d2
bra.s loc_6F518
loc_6F522:
mulu.w #$200,d2
adda.l d2,a0
adda.w $10(a4),a0
movea.l (a4),a1
move.w #$1FF,d2
sub.w $10(a4),d2
clr.w $10(a4)
loc_6F53A:
move.b (a0)+,(a1)+
addq.l #1,(a4)
; addq.l #1,(dword_170).l
cmp.l (a4),d3
beq.s locret_6F55A
dbf d2,loc_6F53A
addi.l #$200,d1
cmpi.l #$1600,d1
bne.s loc_6F50E
locret_6F55A:
rts
sub_6F55C:
btst #5,$F01(a5)
bne.s sub_6F55C
lea ($DFF000).l,a6
move.w #$8210,$96(a6)
move.w #$4489,d4
move.w d4,$7E(a6)
move.w #$9500,$9E(a6)
lea $20(a6),a1
; movea.l dword_6F60C,a0
; move.l a0,(a1)+
lea dword_6F60C(pc),a0
move.l (a0),d5
move.l d5,(a1)+
move.w #$4000,(a1)
move.w #$9900,(a1)
move.w #$9900,(a1)
move.w #2,$9C(a6)
loc_6F59A:
btst #1,$1F(a6)
beq.s loc_6F59A
move.w #$4000,(a1)
moveq #$A,d5
movea.l a0,a1
lea unk_6F616(pc),a3
loc_6F5AE:
cmp.w (a1)+,d4
bne.s loc_6F5AE
cmp.w (a1),d4
beq.s loc_6F5AE
move.l #$55555555,d7
move.l (a1)+,d0
move.l (a1),d1
and.l d7,d0
asl.l #1,d0
and.l d7,d1
or.l d1,d0
lsl.w #1,d0
andi.w #$1E00,d0
move.w d0,(a3)+
lea (a0),a2
lea $34(a1),a1
move.l -4(a1),d2
moveq #$7F,d3
loc_6F5DC:
move.l $200(a1),d1
eor.l d1,d2
move.l (a1)+,d0
eor.l d0,d2
and.l d7,d0
asl.l #1,d0
and.l d7,d1
or.l d1,d0
move.l d0,(a2)+
dbf d3,loc_6F5DC
and.l d7,d2
bne.w sub_6F55C
lea $200(a0),a0
dbf d5,loc_6F5AE
rts
; ---------------------------------------------------------------------------
off_6F604:
dc.l 0
dc.l 0
dword_6F60C:
dc.l 0
dc.w 0
dc.w 0
dc.w 0
unk_6F616:
dc.w 0,0,0,0,0,0,0,0,0,0,0,0
SKID ROW – JUPITER MASTERDRIVE
;Loader used in the SKID ROW crack of "JUPITER MASTERDRIVE"
<-- Track Loader Prox | [ Code ]
<-- Track Loader Prox | [ Code ] | Compilation Menu #2 + LoadSeg -->