rapid1337.com

Angels Loader

2007-08-02 · [ code ] · by staff

;ANGELS loader, Ripped from their “Dragon Breed” crack

<-- Sting’s HARDWARE TRACKLOADER | [ Code ]

[ read in diskmag ]


;ANGELS loader, Ripped from their “Dragon Breed” crack
;cleaned up + altered to let you set MFM buffer address -WK
;REMEMBER TO SET mfmptr TO POINT TO YOUR MFM BUFFER ADDRESS!
Angels_load:
 movem.l d0-a6,-(a7)     ; IN: a0=load addr, d0=filenumber
 lea     filetable(pc),a5
 lsl.w   #3,d0
 move.l  4(a5,d0.w),d1   ; filesize
 move.l  (a5,d0.w),d0    ; offset
 lea     unk_705C8,a2
 lea     ($BFD100).l,a1
 movea.l a0,a5
 adda.l  d1,a5           ; a5=load addr+filesize (for comparison later)
 moveq   #0,d3
 moveq   #0,d4
 move.l  d0,d5
 divu.w  #$1600,d5
 move.w  d5,d3
 swap    d5
 move.w  d5,d4
 bsr.s   sub_70326
 bsr.w   sub_703C8
 bsr.w   sub_7043C
 bsr.w   sub_70422
 movem.l (a7)+,d0-a6
 rts
sub_70326:
 move.b  #$7D,(a1)
 nop
 nop
 bclr    #3,(a1)
 bsr.s   sub_70338
 clr.l   d0
 rts
sub_70338:
 move.l  d1,-(a7)
 move.w  #$8BD4,d1
 bra.s   loc_70344
sub_70340:
 move.w  #$864,d1
loc_70344:
 move.b  #8,$D00(a1)
 move.b  d1,$300(a1)
 lsr.w   #8,d1
 move.b  d1,$400(a1)
loc_70354:
 btst    #0,$C00(a1)
 beq.s   loc_70354
 move.l  (a7)+,d1
 rts
sub_70360:
 btst    #4,($BFE001).l
 beq.s   loc_7037C
 bset    #1,(a1)
 bsr.s   sub_703AC
loc_70370:
 btst    #5,($BFE001).l
 bne.s   loc_70370
 bra.s   sub_70360
loc_7037C:
 clr.b   (a2)
 rts
sub_70380:
 move.b  (a2),d0
 addq.l  #1,d0
 move.b  d0,(a2)
 btst    #0,d0
 bne.s   loc_703A6
 bclr    #1,(a1)
 bsr.s   sub_703AC
loc_70392:
 btst    #5,($BFE001).l
 bne.s   loc_70392
 bset    #2,(a1)
loc_703A0:
 bsr.w   sub_70338
 rts
loc_703A6:
 bclr    #2,(a1)
 bra.s   loc_703A0
sub_703AC:
 bclr    #0,(a1)
 nop
 nop
 bset    #0,(a1)
 bsr.w   sub_70340
loc_703BC:
 btst    #5,($BFE001).l
 bne.s   loc_703BC
 rts
sub_703C8:
 movem.l d1-d2,-(a7)
 cmpi.b  #-1,(a2)
 bne.s   loc_703D8
 bsr.w   sub_70360
 clr.b   (a2)
loc_703D8:
 clr.l   d1
 clr.l   d2
 move.b  (a2),d1
 move.b  d3,d2
 bset    #2,(a1)
 btst    #0,d3
 beq.s   loc_703F2
 bclr    #2,(a1)
 bsr.w   sub_70338
loc_703F2:
 lsr.w   #1,d2
 lsr.w   #1,d1
 sub.w   d1,d2
 bcs.s   loc_70408
 bhi.s   loc_703FE
 bra.s   loc_7041A
loc_703FE:
 bclr    #1,(a1)
 bsr.w   sub_70338
 bra.s   loc_70412
loc_70408:
 neg.w   d2
 bset    #1,(a1)
 bsr.w   sub_70338
loc_70412:
 bsr.w   sub_703AC
 subq.w  #1,d2
 bne.s   loc_70412
loc_7041A:
 move.b  d3,(a2)
 movem.l (a7)+,d1-d2
 rts
sub_70422:
 move.b  #-3,(a1)
 nop
 nop
 bclr    #3,(a1)
 nop
 nop
 bset    #3,(a1)
 bsr.w   sub_70338
 rts
sub_7043C:
 moveq   #4,d2
loc_7043E:
 bsr.s   sub_70488
 tst.l   d0
 bne.s   loc_7045A
 bsr.w   sub_70508
 tst.l   d0
 bne.s   loc_7045A
 cmpa.l  a0,a5
 ble.s   locret_70458
 bsr.w   sub_70380
 moveq   #4,d2
 bra.s   loc_7043E
locret_70458:
 rts
loc_7045A:
 bclr    #1,(a1)
 bsr.w   sub_70338
 bsr.w   sub_703AC
 bsr.w   sub_70338
 bset    #1,(a1)
 bsr.w   sub_70338
 bsr.w   sub_703AC
 bsr.w   sub_70338
 subq.l  #1,d2
 bne.s   sub_7043C
loc_7047E:
 move.w  d0,($DFF180).l
 subq.w  #1,d0
 bra.s   loc_7047E
sub_70488:
 movem.l d1-d2/a0-a2,-(a7)
loc_7048C:
 lea     ($DFF000).l,a6
; movea.l #$2000,a1		;MFM Buff
 move.l  mfmptr(pc),d1
 move.l  d1,$20(a6)
; move.l  a1,$20(a6)
 move.w  #$8010,$96(a6)
 move.w  #$7F00,$9E(a6)
 move.w  #$9500,$9E(a6)
 move.w  #$4000,$24(a6)
 move.w  #$4489,$7E(a6)
loc_704BA:
 btst    #5,($BFE001).l
 bne.s   loc_704BA
 move.w  #$9980,$24(a6)
 move.w  #$9980,$24(a6)
 move.l  #$20000,d1
 move.w  #2,$9C(a6)
loc_704DC:
 move.w  $1E(a6),d2
 btst    #1,d2
 bne.s   loc_704EE
 subq.l  #1,d1
 bne.s   loc_704DC
 moveq   #-1,d0
 bra.s   loc_704F6
loc_704EE:
 moveq   #0,d0
 cmpi.w  #$4489,(a1)
 bne.s   loc_7048C
loc_704F6:
 move.w  #$4000,$24(a6)
 move.w  #$10,$96(a6)
 movem.l (a7)+,d1-d2/a0-a2
 rts
sub_70508:
 movem.l d1-d3/d5-d7/a1-a6,-(a7)
 movea.l a0,a2
 movea.l a0,a3
 adda.l  d4,a3
 movea.l a0,a4
; movea.l #$2000,a1		;MFM Buff
 move.l  mfmptr(pc),d5
 move.l  d5,a1
 cmpi.w  #$4489,(a1)
 bne.s   loc_70576
 moveq   #$A,d5
loc_70522:
 bsr.s   sub_7057C
 tst.l   d0
 bne.s   loc_7056A
 moveq   #$7F,d6
loc_7052A:
 move.l  $200(a1),d1
 move.l  (a1)+,d0
 eor.l   d0,d2
 eor.l   d1,d2
 bsr.w   sub_705B6
 cmpa.l  a3,a2
 bge.s   loc_70540
 addq.l  #4,a2
 bra.s   loc_7054C
loc_70540:
 movea.l a2,a6
 addq.l  #4,a2
 suba.l  d4,a6
 cmpa.l  a5,a6
 bge.s   loc_7054C
 move.l  d0,(a6)+
loc_7054C:
 dbf     d6,loc_7052A
 andi.l  #$55555555,d2
 cmp.l   d2,d7
 bne.s   loc_70576
 dbf     d5,loc_70522
 move.l  #$1600,d0
 sub.l   d4,d0
 adda.l  d0,a0
 clr.l   d0
loc_7056A:
 tst.l   d0
 bne.s   loc_70576
 clr.l   d4
loc_70570:
 movem.l (a7)+,d1-d3/d5-d7/a1-a6
 rts
loc_70576:
 movea.l a4,a0
 moveq   #-1,d0
 bra.s   loc_70570
sub_7057C:
 move.w  #$4489,d0
loc_70580:
 cmp.w   (a1)+,d0
 bne.s   loc_70580
 cmp.w   (a1),d0
 bne.s   loc_7058A
 addq.l  #2,a1
loc_7058A:
 move.l  $30(a1),d0
 move.l  $34(a1),d1
 bsr.s   sub_705B6
 move.l  d0,d7
 move.l  (a1),d0
 move.l  4(a1),d1
 bsr.s   sub_705B6
 lsr.w   #8,d0
 lea     $38(a1),a1
 add.w   d0,d0
 asl.w   #8,d0
 lea     (a4,d0.w),a2
 moveq   #0,d0
 clr.l   d2
 rts
 moveq   #-1,d0
 rts
sub_705B6:
 asl.l   #1,d0
 andi.l  #$AAAAAAAA,d0
 andi.l  #$55555555,d1
 or.l    d1,d0
 rts
; —————————————————————————
unk_705C8:      dc.b 0
                dc.b 0
mfmptr:					dc.l $0	;pointer to MFM buffer
Angels_loadend:
filetable:      dc.l 0
                dc.l 0
                dc.l $2C00
                dc.l $91AC
                dc.l $BDAC
                dc.l $85DC
                dc.l $14388
                dc.l $70F4
                dc.l $1B47C
                dc.l $60A4
                dc.l $21520
                dc.l $67AC
                dc.l $27CCC
                dc.l $686C
                dc.l $2E538
                dc.l $6958
                dc.l $34E90
                dc.l $4200
                dc.l $39090
                dc.l $3978
                dc.l $3CA08
                dc.l $C6D0
                dc.l $490D8
                dc.l $46F0
                dc.l $4D7C8
                dc.l $7FF0
                dc.l $557B8
                dc.l $18E0
                dc.l $57098
                dc.l $7D20
                dc.l $5EDB8
                dc.l $44FE0
                dc.l $A3D98
                dc.l $2C0C
                dc.l $A69A4
                dc.l $7D00

#amiga #cracking #loaders


<-- Sting’s HARDWARE TRACKLOADER | [ Code ] | Beyond the Ice Palace -->