; ByteKiller V3.0 DeCrunch-Routine ; -------------------------------- ; © 1991 SECTION 9 - ASM-One Assembler Source = $30000 Dest = $50000 JumpIn = $50000 ; bei Verwendung von "INCBIN" (siehe unten) ; "lea Source,a0" durch "lea DeCrDt(pc),a0" ; ersetzen um dann ggf. mit "wo" zu speichern. ; Die mit '**' gekennzeichneten Zeilen können je ; nach Verwendung des Source auch weggelassen werden. SECTION ByteKillerV3.0_DeCrunch,CODE DeCr00: movem.l d0-a6,-(a7) ** lea Source,a0 ;;lea DeCrDt(pc),a0 siehe oben lea Dest,a1 lea $dff180,a6 ** move.l (a0)+,d0 move.l (a0)+,d1 add.l d0,a0 move.l (a0),d0 move.l a1,a2 add.l d1,a2 moveq #3,d5 moveq #2,d6 moveq #$10,d7 DeCr01: lsr.l #1,d0 bne.b DeCr02 bsr.b DeCr14 DeCr02: bcs.b DeCr09 moveq #8,d1 moveq #1,d3 lsr.l #1,d0 bne.b DeCr03 bsr.b DeCr14 DeCr03: bcs.b DeCr11 moveq #3,d1 moveq #0,d4 DeCr04: bsr.b DeCr15 move.w d2,d3 add.w d4,d3 DeCr05: moveq #7,d1 DeCr06: lsr.l #1,d0 bne.b DeCr07 bsr.b DeCr14 DeCr07: roxl.l #1,d2 dbf d1,DeCr06 move.b d2,-(a2) dbf d3,DeCr05 bra.b DeCr13 DeCr08: moveq #8,d1 moveq #8,d4 bra.b DeCr04 DeCr09: moveq #2,d1 bsr.b DeCr15 cmp.b d6,d2 blt.b DeCr10 cmp.b d5,d2 beq.b DeCr08 moveq #8,d1 bsr.b DeCr15 move.w d2,d3 moveq #$c,d1 bra.b DeCr11 DeCr10: moveq #9,d1 add.w d2,d1 addq.w #2,d2 move.w d2,d3 move.b d3,(a6) ** DeCr11: bsr.b DeCr15 DeCr12: subq.w #1,a2 move.b 0(a2,d2.w),(a2) dbf d3,DeCr12 DeCr13: cmpa.l a2,a1 blt.b DeCr01 movem.l (a7)+,d0-a6 ** jmp JumpIn ** moveq #-1,d0 ** rts DeCr14: move.l -(a0),d0 move.w d7,ccr roxr.l #1,d0 rts DeCr15: subq.w #1,d1 moveq #0,d2 DeCr16: lsr.l #1,d0 bne.b DeCr17 move.l -(a0),d0 move.w d7,ccr roxr.l #1,d0 DeCr17: roxl.l #1,d2 dbf d1,DeCr16 rts DeCrDt: ;;INCBIN "ByteKillerV3.0_DataFile" siehe oben