boot3/Patches/DeCompressDefProc.a
Elliot Nunn 5b0f0cc134 Bring in CubeE sources
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included.

The Tools directory, containing mostly junk, is also excluded.
2017-12-26 10:02:57 +08:00

867 lines
22 KiB
Plaintext

;
; File: DeCompressDefProc.a
;
; Contains: the standard decompression DefProc.
;
; Written by: Donn Denman
;
; Copyright: © 1990-1991 by Apple Computer, Inc., all rights reserved.
;
; Change History (most recent first):
;
; <8> 7/9/91 JSM Remove obsolete check for 7.0 or greater, set tabs to 4.
; <7> 1/30/91 gbm sab, #38: Change the name of one of the decompressor header
; files (because Sheila said it was okay)
; <6> 4/18/90 DD Exporting the DeCompressor, so CodeProfile can call it easily.
; <5> 4/12/90 DD Split off from byte-size decompressor, so now I don't support
; odd literal sizes.
; <4> 3/28/90 DD Added Entry Vector DeCompression for Finder's CODE 3 resource.
; <3> 3/23/90 DD Debugged variable table usage, and added jump table
; decompression.
; <2> 3/1/90 DD Fixed a bug - defproc was not stripping parameters after being
; called.
; <1> 2/21/90 DD new file today, from DeCompressorPatch.a
;
LOAD 'StandardEqu.d'
include 'DecompressorPatchEqu.a' ; equate file
DeCompressDefProc PROC Export
With VarTableRec
BRA UnpackData ; do the decompress.
DC.l ('dcmp') ; resource type
DC.W $0000 ; ID 0 the default decompressor.
DC.W 0 ; current version number.
delta Equ 2
Max1ByteReuse Equ 40 ;ReUseData can encode this many vars in one byte.
include 'DeCompressCommon.A' ;common to the DeCompressDefProc's
UnpackLoop
MoveQ #0,D0
Move.B (A4)+,D0 ;get a token.
Asl.W #3,D0 ;index into an 8 byte (4 word) table.
Jmp 0(A2,D0) ;jump to the handler entry.
*****************************************************************
*
* W A R N I N G !
*
* This Table is position sensitive !!!!!!!!!!
*
*****************************************************************
align 8
;
; CodeDispatchTable - Each entry must be 4 words, since we index into it.
;
CodeDispatchTable
; Literal data, to copy to the output stream.
LitWithLength
Bsr.S CopyWithLength ;literal followed by an encoded length.
Bra.S UnpackLoop
align 8
; Literal data, with encoded length
Literal2
MoveQ #2,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal4
MoveQ #4,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal6
MoveQ #6,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal8
MoveQ #8,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal10
MoveQ #10,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal12
MoveQ #12,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal14
MoveQ #14,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal16
MoveQ #16,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal18
MoveQ #18,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal20
MoveQ #20,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal22
MoveQ #22,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal24
MoveQ #24,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal26
MoveQ #26,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal28
MoveQ #28,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
Literal30
MoveQ #30,D0 ;pick up the length.
Bra.S CopyLiteralAndLoop ;jump to CopyLiteralAndLoop.
align 8
; Literal data to be remembered in the variable table.
DoRememberWithLength
Bsr.S RememberWithLength ;remember a literal followed by a byte length.
Bra.S UnpackLoop
align 8
; Literal data to be remembered in the variable table, with encoded length
Remember2
MoveQ #2,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember4
MoveQ #4,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember6
MoveQ #6,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember8
MoveQ #8,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember10
MoveQ #10,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember12
MoveQ #12,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember14
MoveQ #14,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember16
MoveQ #16,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember18
MoveQ #18,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember20
MoveQ #20,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember22
MoveQ #22,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember24
MoveQ #24,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember26
MoveQ #26,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember28
MoveQ #28,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
Remember30
MoveQ #30,D0 ;pick up the length.
Bra.S RememberLiteral ;jump to RememberLiteral.
align 8
; References to remembered strings.
DoReuseByteLength
Bsr.S ReuseByteLength ;previously seen literal, followed by byte.
Bra.S UnpackLoop
align 8
DoReuseByte2Length
Bsr.S ReuseByte2Length ;previously seen literal, followed by byte-256.
Bra.S UnpackLoop
align 8
DoReuseWordLength
Bsr.S ReuseWordLength ;previously seen literal, followed by word..
Bra.S UnpackLoop
align 8
; References to remembered strings, with the string index number encoded.
ReuseData0
MoveQ #0,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData1
MoveQ #1,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData2
MoveQ #2,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData3
MoveQ #3,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData4
MoveQ #4,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData5
MoveQ #5,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData6
MoveQ #6,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData7
MoveQ #7,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData8
MoveQ #8,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData9
MoveQ #9,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData10
MoveQ #10,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData11
MoveQ #11,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData12
MoveQ #12,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData13
MoveQ #13,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData14
MoveQ #14,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData15
MoveQ #15,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData16
MoveQ #16,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData17
MoveQ #17,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData18
MoveQ #18,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData19
MoveQ #19,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData20
MoveQ #20,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData21
MoveQ #21,D0 ;pick up the length.
Bra.S ReuseData ;jump to ReuseData.
align 8
ReuseData22
MoveQ #22,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData23
MoveQ #23,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData24
MoveQ #24,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData25
MoveQ #25,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData26
MoveQ #26,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData27
MoveQ #27,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData28
MoveQ #28,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData29
MoveQ #29,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData30
MoveQ #30,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData31
MoveQ #31,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData32
MoveQ #32,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData33
MoveQ #33,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData34
MoveQ #34,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData35
MoveQ #35,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData36
MoveQ #36,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData37
MoveQ #37,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData38
MoveQ #38,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
ReuseData39
MoveQ #39,D0 ;pick up the length.
Bra ReuseData ;jump to ReuseData.
align 8
; constant words, to stuff into the output stream.
Clr.W (A1)+ ;move 0 into the output stream.
Bra UnpackLoop ;keep looping.
align 8 ;4A
Move.W #$4EBA,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0008,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4E75,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$000C,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4EAD,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$2053,(A1)+
Bra UnpackLoop ;keep looping.
align 8 ;50
Move.W #$2F0B,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$6100,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0010,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$7000,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$2F00,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$486E,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$2050,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$206E,(A1)+
Bra UnpackLoop ;keep looping.
align 8 ;58
Move.W #$2F2E,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$FFFC,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$48E7,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$3F3C,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0004,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$FFF8,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$2F0C,(A1)+
Bra UnpackLoop ;keep looping.
align 8 ;60
Move.W #$2006,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4EED,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4E56,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$2068,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4E5E,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0001,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$588F,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4FEF,(A1)+
Bra UnpackLoop ;keep looping.
align 8 ;68
Move.W #$0002,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0018,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$6000,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$FFFF,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$508F,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4E90,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0006,(A1)+
Bra UnpackLoop ;keep looping.
align 8 ;70
Move.W #$266E,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0014,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$FFF4,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4CEE,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$000A,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$000E,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$41EE,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4CDF,(A1)+
Bra UnpackLoop ;keep looping.
align 8 ;78
Move.W #$48C0,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$FFF0,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$2D40,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0012,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$302E,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$7001,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$2F28,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$2054,(A1)+
Bra UnpackLoop ;keep looping.
align 8 ;80
Move.W #$6700,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0020,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$001C,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$205F,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$1800,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$266F,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4878,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0016,(A1)+
Bra UnpackLoop ;keep looping.
align 8 ;88
Move.W #$41FA,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$303C,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$2840,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$7200,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$286E,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$200C,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$6600,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$206B,(A1)+
Bra UnpackLoop ;keep looping.
align 8 ;90
Move.W #$2F07,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$558F,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0028,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$FFFE,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$FFEC,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$22D8,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$200B,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$000F,(A1)+
Bra UnpackLoop ;keep looping.
align 8 ;98
Move.W #$598F,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$2F3C,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$FF00,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0118,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$81E1,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4A00,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4EB0,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$FFE8,(A1)+
Bra UnpackLoop ;keep looping.
align 8 ;A0
Move.W #$48C7,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0003,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0022,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0007,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$001A,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$6706,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$6708,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4EF9,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0024,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$2078,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0800,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$6604,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$002A,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$4ED0,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$3028,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$265F,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$6704,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$0030,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$43EE,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$3F00,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$201F,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$001E,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$FFF6,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$202E,(A1)+
Bra UnpackLoop ;keep looping.
align 8
Move.W #$42A7,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2007,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$FFFA,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$6002,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$3D40,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0C40,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$6606,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0026,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2D48,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2F01,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$70FF,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$6004,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$1880,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$4A40,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0040,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$002C,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2F08,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0011,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$FFE4,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2140,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2640,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$FFF2,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$426E,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$4EB9,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$3D7C,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0038,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$000D,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$6006,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$422E,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$203C,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$670C,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2D68,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$6608,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$4A2E,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$4AAE,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$002E,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$4840,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$225F,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2200,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$670A,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$3007,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$4267,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0032,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2028,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0009,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$487A,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0200,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2F2B,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0005,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$226E,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$6602,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$E580,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$670E,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$660A,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0050,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$3E00,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$660C,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2E00,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$FFEE,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$206D,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$2040,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$FFE0,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$5340,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$6008,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0480,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0068,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$0B7C,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$4400,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$41E8,(A1)+
Bra UnpackLoop ;keep looping.
Move.W #$4841,(A1)+
Bra UnpackLoop ;keep looping.
Bsr HandleExtensions
Bra UnpackLoop ;keep looping.
; last table entry is the terminator for unpack.
LastDispatch Equ *
LastDispOffset Equ LastDispatch-(CodeDispatchTable+(255*8))
IF LastDispOffset THEN
AERROR 'DeCompressDefProc - bad branches cause unusable table!'
ELSE
Bra ExitUnpack ;done with the unpacking.
ENDIF
END