Page 1 of 1

Unpack Automation

Posted: Fri Mar 23, 2018 12:28 pm
by rockyone
I am looking for Automation V2.3 Unpacking routine or code.

Re: Unpack Automation

Posted: Fri Mar 23, 2018 1:15 pm
by Mug UK
Here you go.

Code: Select all

;should now be capable of decoding from odd to odd addresses
;11th October 1989

DEPACK      adda.l #4,a0
      move.w $ff8240,-(sp)
      move.b (a0)+,d5
      lsl.w    #8,d5
      move.b   (a0)+,d5
      swap   d5
      move.b   (a0)+,d5
      lsl.w   #8,d5
      move.b   (a0)+,d5
      adda.l d5,a1
      move.b   (a0),d0
      lsl.w   #8,d0
      move.b   1(a0),d0
      swap   d0
      move.b   2(a0),d0
      lsl.w   #8,d0
      move.b   3(a0),d0
      adda.l    d0,a0
      subq.l #4,a0
      move.b   -2(a0),d0
      lsl.w   #8,d0
      move.b   -1(a0),d0
      subq.l   #2,a0
      tst.w   d0
      bpl.s L_1
      subq.l #1,a0
L_1      move.b -(a0),d0
L_2      lsl.b #1,d0
      bne.s L_3
      MOVE.B   -(A0),D0
      ROXL.B   #1,D0
L_3      BCC.S   L_10
      CLR.W   D1
      LSL.B   #1,D0
      BNE.S   L_4
      MOVE.B   -(A0),D0
      ROXL.B   #1,D0
L_4      BCC.S   L_9
      LEA   NUMS(PC),A3
      MOVEQ   #3,D3
L_5      CLR.W   D1
      MOVE.B   0(A3,D3.W),D2
      EXT.W   D2
      MOVEQ   #-1,D4
      LSL.W   D2,D4
      NOT.W   D4
      SUBQ.W   #1,D2
L_6      LSL.B   #1,D0
      BNE.S   L_7
      MOVE.B   -(A0),D0
      ROXL.B   #1,D0
L_7      ROXL.W   #1,D1
      DBF   D2,L_6
      TST.W   D3
      BEQ.S   L_8
      CMP.W   D1,D4
      DBNE   D3,L_5
L_8      MOVE.B   4(A3,D3.W),D2
      EXT.W   D2
      ADD.W   D2,D1
      BRA   L_9

NUMS      DC.B   $0A,$03,$02,$02,$0E,$07,$04,$01

L_9      MOVE.B   -(A0),-(A1)
      eor.w   #$777,$ff8240
      DBF   D1,L_9

L_10      MOVE.L   A4,A3      ;get crunch position
      ADDQ.L   #$8,A3
      CMPA.L   A3,A0
      BLE   BYENOW
      LEA   NUMS2(PC),A3
      MOVEQ   #3,D2
L_11      LSL.B   #1,D0
      BNE.S   L_12
      MOVE.B   -(A0),D0
      ROXL.B   #1,D0
L_12      BCC.S   L_13
      DBF   D2,L_11

L_13      CLR.W   D1
      ADDQ.W   #1,D2
      MOVE.B   0(A3,D2.W),D3
      BEQ.S   L_16
      EXT.W   D3
      SUBQ.W   #1,D3
L_14      LSL.B   #1,D0
      BNE.S   L_15
      MOVE.B   -(A0),D0
      ROXL.B   #1,D0
L_15      ROXL.W   #1,D1
      DBF   D3,L_14
L_16      MOVE.B   5(A3,D2.W),D3
      EXT.W   D3
      ADD.W   D3,D1
      BRA   L_161

NUMS2      DC.B   $0A,$02,$01,$00,$00,$0A,$06,$04,$03,$02

L_161      CMPI.W   #2,D1
      BEQ.S   L_22
      LEA   NUMS3(PC),A3
      MOVEQ   #1,D3
L_17      LSL.B   #1,D0
      BNE.S   L_18
      MOVE.B   -(A0),D0
      ROXL.B   #1,D0
L_18      BCC.S   L_19
      DBF   D3,L_17
L_19      ADDQ.W   #1,D3
      CLR.W   D2
      MOVE.B   0(A3,D3.W),D4
      EXT.W   D4
L_20      LSL.B   #1,D0
      BNE.S   L_21
      MOVE.B   -(A0),D0
      ROXL.B   #1,D0
L_21      ROXL.W   #1,D2
      DBF   D4,L_20
      LSL.W   #1,D3
      ADD.W   4(A3,D3.W),D2
      BRA.S   L_26

NUMS3      DC.B   $0B,$04,$07,$00,$01,$20,$00,$00
      DC.B   $00,$20,$00,$00

L_22      CLR.W   D2
      MOVEQ   #5,D3
      CLR.W   D4
      LSL.b   #1,D0
      BNE.S   L_23
      MOVE.B   -(A0),D0
      ROXL.B   #1,D0
L_23      BCC.S   L_24
      MOVEQ   #8,D3
      MOVEQ   #$40,D4
L_24      LSL.B   #1,D0
      BNE.S   L_25
      MOVE.B   -(A0),D0
      ROXL.B   #1,D0
L_25      ROXL.W   #1,D2
      DBF   D3,L_24
      ADD.W   D4,D2
L_26      LEA   0(A1,D2.W),A2
      EXT.L   D1
      ADDA.L   D1,A2
      SUBQ.W   #1,D1
L_27      MOVE.B   -(A2),-(A1)
      DBF   D1,L_27
      BRA   L_2
BYENOW      move.w (a7)+,$ff8240
      RTS

Re: Unpack Automation

Posted: Sat Mar 24, 2018 12:17 am
by rockyone
thank you Mug UK.

Re: Unpack Automation

Posted: Sat Mar 24, 2018 6:18 pm
by rockyone
In test ..
I removed the animation on the palette, ...
added
Depack: movea.l a0, a4
                ...
But it's not good. This causes me an error when I release the used memory areas.

But with
Depack: movea.l a1, a4
...
L_10: cmpa.l a4, a1
         beq BYENOW
           ....
its good ..

What is the reason for the read mode used to read the uncompressed file size?

Is the Automation signature v2.3.r always 'LSD!' Or are there variants ?

Re: Unpack Automation

Posted: Sun Mar 25, 2018 12:25 pm
by Mug UK
Unless someone has hacked the header signature, then up to v2.51, it was "LSD!".

For the version of the Automation packer after that it was a front-end hack for the Ice Packer v2.4 (I think, it's been a long time). So you can depack it with the Ice depack code *but* the header is "AU5!" instead.

Re: Unpack Automation

Posted: Mon Mar 26, 2018 2:06 pm
by rockyone
Mug UK wrote:Unless someone has hacked the header signature, then up to v2.51, it was "LSD!".

For the version of the Automation packer after that it was a front-end hack for the Ice Packer v2.4 (I think, it's been a long time). So you can depack it with the Ice depack code *but* the header is "AU5!" instead.


Canvas v1.0 but the color palette of the image (48 bytes!) Before the identification of the file.

Unfortunately, I do not have automation packages, or different versions of unpacking. If you could provide them to me ...

But, I tested with New Depack v1.1, a file ".ICE" v2.40 labeled "AU5!" Is well unpacked with atomation v5.01 : :cheers:

Re: Unpack Automation

Posted: Mon Mar 26, 2018 2:28 pm
by prog99
From the newdpak code (less some setup stuff). It never cares about file names or extensions just whats in the header -
/*
** Automation 5.01 datafile
*/
if ISDATA('AU5!')
{
....

ice2_3_4_data(file_start,depacked_pointer);
....
}

From memory the Automation 5.01 packer is just a gem front end to ice.

Anything else you need let me know.
Regards, Mike.

Re: Unpack Automation

Posted: Mon Mar 26, 2018 3:02 pm
by Mug UK
Various unpackers and Automation 5.01 Packer (and depack routines) are attached below.

UNPACK.S.zip


PowerPacker Decrunch assembler subroutine V2.0.zip


automatn.501.zip

Re: Unpack Automation

Posted: Mon Mar 26, 2018 4:00 pm
by rockyone
Thank you for sharing Mug UK
:cheers: