rapid1337.com

File-name Loader

2007-06-22 · [ code ] · by staff

;Conqueror’s DOS fileloader, ripped from “DEEP CORE” coverdisk preview version

<-- Alpha One’s Track loader | [ Code ]

[ read in diskmag ]


;Conqueror’s DOS fileloader, ripped from “DEEP CORE” coverdisk preview version
;ripped + modified to let you set the MFM buffer address -WK
conqload:
                movem.l d0-a6,-(sp)
                lea     ($BFD100).l,a5
                bsr.w   sub_7E948
                lea     unk_7EA93(pc),a6
                andi.b  #$7F,(a5)
                move.b  (a6)+,d0
                move.l  a0,2(a6)
                st      6(a6)
                and.b   d0,(a5)
                move.w  #$370,d0
                bsr.w   sub_7E9A2
                movea.l a1,a2
loc_7E8AE:
                tst.b   (a2)+
                bne.s   loc_7E8AE
                suba.l  a1,a2
                subq.w  #1,a2
                move.l  a2,d2
                moveq   #0,d3
                move.l  d2,d4
                move.l  d4,d6
                movea.l a1,a3
loc_7E8C0:
                mulu.w  #$D,d2
                move.b  (a1)+,d3
                cmpi.b  #$61,d3 ; ‘a’
                bcs.s   loc_7E8D6
                cmpi.b  #$7A,d3 ; ‘z’
                bhi.s   loc_7E8D6
                subi.b  #$20,d3
loc_7E8D6:
                add.w   d3,d2
                andi.w  #$7FF,d2
                subq.w  #1,d4
                bne.s   loc_7E8C0
                divu.w  #$48,d2
                swap    d2
                addq.w  #6,d2
                lsl.w   #2,d2
                move.l  (a0,d2.w),d0
loc_7E8EE:
                bsr.w   sub_7E9A2
                lea     $1B0(a0),a1
                cmp.b   (a1)+,d6
                bne.s   loc_7E93A
                movea.l a3,a2
                move.w  d6,d0
loc_7E8FE:
                cmpm.b  (a1)+,(a2)+
                bne.s   loc_7E93A
                subq.w  #1,d0
                bne.s   loc_7E8FE
                move.l  $144(a0),d0
                add.l   dword_7EA96(pc),d0
                move.l  d0,6(a6)
loc_7E912:
                move.l  $10(a0),d0
                beq.s   loc_7E940
                bsr.w   sub_7E9A2
                lea     $18(a0),a1
                movea.l dword_7EA96(pc),a2
                move.l  dword_7EA9A(pc),d0
                move.w  #$1E7,d7
loc_7E92C:
                move.b  (a1)+,(a2)+
                cmpa.l  d0,a2
                dbeq    d7,loc_7E92C
                move.l  a2,2(a6)
                bra.s   loc_7E912
; —————————————————————————
loc_7E93A:
                move.l  $1F0(a0),d0
                bne.s   loc_7E8EE
loc_7E940:
                bsr.s   sub_7E948
                movem.l (sp)+,d0-a6
                rts
; End of function conqload
; ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ S U B R O U T I N E ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ
sub_7E948:
                ori.b   #$F8,(a5)
                andi.b  #$87,(a5)
                ori.b   #$78,(a5)
                rts
; End of function sub_7E948
; —————————————————————————
loc_7E956:
                bset    d7,(a5)
                bsr.s   sub_7E97C
loc_7E95A:
                btst    #4,$F01(a5)
                bne.s   loc_7E956
                sf      (a6)
; ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ S U B R O U T I N E ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ
sub_7E964:
                tst.b   (a6)
                bmi.s   loc_7E95A
loc_7E968:
                cmp.b   (a6),d2
                beq.s   loc_7E998
                bcc.s   loc_7E974
                bset    d7,(a5)
                subq.b  #1,(a6)
                bra.s   loc_7E978
; —————————————————————————
loc_7E974:
                bclr    d7,(a5)
                addq.b  #1,(a6)
loc_7E978:
                bsr.s   sub_7E97C
                bra.s   loc_7E968
; End of function sub_7E964
; ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ S U B R O U T I N E ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ
sub_7E97C:
                bclr    d3,(a5)
                mulu.w  d3,d3
                bset    d3,(a5)
                move.b  d3,$500(a5)
                move.b  #$10,$600(a5)
                move.b  #$19,$E00(a5)
loc_7E992:
                btst    d3,$E00(a5)
                bne.s   loc_7E992
loc_7E998:
                btst    #5,$F01(a5)
                bne.s   loc_7E998
                rts
; End of function sub_7E97C
; ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ S U B R O U T I N E ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ
sub_7E9A2:
                moveq   #0,d3
                moveq   #1,d7
                moveq   #2,d5
                                movea.l	#mfmbuff,a4
;                lea     (unk_A04).l,a4 ;MFM buff
                move.l  d0,d2
                ext.l   d2
                divu.w  #$B,d2
                move.l  d2,d4
                swap    d4
                cmp.b   1(a6),d2
                beq.s   loc_7EA2A
                move.b  d2,1(a6)
                bset    d5,(a5)
                btst    d3,d2
                beq.s   loc_7E9CC
                bclr    d5,(a5)
loc_7E9CC:
                lsr.w   #1,d2
                bsr.s   sub_7E964
                move.b  #5,-2(a6)
                bra.s   loc_7E9E4
; —————————————————————————
loc_7E9D8:
                subq.b  #1,-2(a6)
                bne.s   loc_7E9E4
                moveq   #-1,d2
                move.w  d2,(a6)
                bra.s   sub_7E9A2
; —————————————————————————
loc_7E9E4:
                                movea.l	#mfmbuff,a4
;                lea     (unk_A04).l,a4  ; MFM buffer
                lea     ($DFF020).l,a0
                move.l  a4,(a0)+
                move.w  #$8210,$72(a0)
                move.l  #$27F00,$78(a0)
                move.w  #$9500,$7A(a0)
                move.w  #$4489,$5A(a0)
                move.w  #$9900,(a0)
                move.w  #$9900,(a0)
                move.l  #$A00000,d7
loc_7EA1A:
                subq.l  #1,d7
                beq.s   loc_7E9D8
                btst    #1,-5(a0)
                beq.s   loc_7EA1A
                move.w  #$4000,(a0)
loc_7EA2A:
                lea     $3200(a4),a2
                movea.l a2,a0
                move.l  #$55555555,d5
                moveq   #$A,d1
loc_7EA38:
                cmpi.w  #$4489,(a4)+
                bne.s   loc_7EA38
                cmpi.w  #$4489,(a4)
                beq.s   loc_7EA38
                movem.l (a4),d2-d3
                bsr.s   sub_7EA88
                lsr.w   #8,d2
                cmp.w   d4,d2
                beq.s   loc_7EA5C
                adda.w  #$438,a4
                dbf     d1,loc_7EA38
                bra.w   loc_7E9D8
; —————————————————————————
loc_7EA5C:
                swap    d2
                cmp.b   1(a6),d2
                bne.w   loc_7E9D8
                lea     $34(a4),a4
                move.l  (a4)+,d4
                moveq   #$7F,d7
loc_7EA6E:
                move.l  $200(a4),d3
                move.l  (a4)+,d2
                eor.l   d2,d4
                eor.l   d3,d4
                bsr.s   sub_7EA88
                move.l  d2,(a2)+
                dbf     d7,loc_7EA6E
                and.l   d5,d4
                bne.w   loc_7E9D8
                rts
; End of function sub_7E9A2
; ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ S U B R O U T I N E ヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲヲ
sub_7EA88:
                and.l   d5,d2
                and.l   d5,d3
                add.l   d2,d2
                or.l    d3,d2
                rts
; End of function sub_7EA88
; —————————————————————————
                dc.b   5
unk_7EA93:      dc.b $F7
                dc.b $FF
                dc.b $FF
dword_7EA96:    dc.l $ffffffff
dword_7EA9A:    dc.l $ffffffff
mfmaddr:				dc.l $0
filename:				dc.b “TEST”,0
    even
; —————————————————————————
****************************************************************************
; VARIABLES
****************************************************************************
gfxlib:		dc.b	“graphics.library”,0,0
gfxbase:	dc.l	0
old_Intena	dc.w	0
old_Dmacon	dc.w	0
    even
;space for MFM buffer
mfmbuff:	blk.b 16384,0
    even
;space for loading buffer
loadbuff:	blk.b	32768,0
    even
theend:

#amiga #cracking #loaders


<-- Alpha One’s Track loader | [ Code ] | Stack Up -->