; ; 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