mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-27 10:29:32 +00:00
4325cdcc78
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.
867 lines
22 KiB
Plaintext
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 |