mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-28 01:29:20 +00:00
867 lines
22 KiB
Plaintext
867 lines
22 KiB
Plaintext
|
;
|
|||
|
; File: DeCompressDefProc.a
|
|||
|
;
|
|||
|
; Contains: the standard decompression DefProc.
|
|||
|
;
|
|||
|
; Written by: Donn Denman
|
|||
|
;
|
|||
|
; Copyright: <09> 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
|