mac-rom/Patches/DeCompressDefProc.a

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