	output dh0:music/deliplayers/Player40A
	include "misc/DeliPlayer.i"
	include	exec/exec_lib.i

	opt	o+
			
;
;
	SECTION Player,Code
;
;

	PLAYERHEADER PlayerTagArray

	dc.b '$VER: Player 4.0A replay module V2.1 (13-May-93)',0
	even

PlayerTagArray
	dc.l	DTP_PlayerVersion,4
	dc.l	DTP_PlayerName,PName
	dc.l	DTP_Creator,CName
	dc.l	DTP_Check2,Chk
	dc.l	DTP_InitPlayer,InitPlay
	dc.l	DTP_EndPlayer,EndPlay
	dc.l	DTP_InitSound,init
	dc.l	DTP_Interrupt,p4a_music
	dc.l	DTP_EndSound,p4a_end
	dc.l	TAG_DONE
	
*-----------------------------------------------------------------------*
;
; Player/Creatorname und lokale Daten

PName	dc.b 'Player40A',0
CName	dc.b 'Jarno Paananen,',10
	dc.b 'adapted by marley/Infect',0
	even

*-----------------------------------------------------------------------*
;
; Testet auf Modul

Chk				; ProRunner  ?
	move.l	dtg_ChkData(a5),a0

	moveq	#-1,d0		; Modul nicht erkannt (default)

	cmpi.l	#'P40A',(a0)+
	bne.s	ChkFail
	move.l	a0,p4a_address
ChkOk
	moveq	#0,d0		; Modul erkannt
ChkFail
	rts

*-----------------------------------------------------------------------*
;
; Init Player

InitPlay	move.l	dtg_AudioAlloc(a5),a0	; Function
	jmp	(a0)		; returncode is already set !

*-----------------------------------------------------------------------*
;
; End Player

EndPlay	bsr	ResetCIAInt
	move.l	dtg_AudioFree(a5),a0		; Function
	jmp	(a0)

*-----------------------------------------------------------------------*		

START_TIMER	MACRO
	;move.l	a0,-(a7)
	move.l	CIAAaddr(pc),a0
	move.w	#2,p4a_intcount
	move.w	TimerFlag(pc),d0
	beq.s	.timera
	move.b	#$19,ciacrb(a0)
	bra.s	.timerb
.timera	move.b	#$19,ciacra(a0)
.timerb	;move.l	(a7)+,a0
	ENDM

	
init	movem.l	d0/a0/a1,-(a7)
	bsr	p4a_deinit	;restore possibly initialized module
	move.l	p4a_address(pc),A0
	BSR	p4a_init	
	move.l	CIAABase(pc),d0
	bne.s	ICRint_used
	BSR.S	SetCIAInt
ICRint_used	movem.l	(a7)+,d0/a0/a1
	RTS

;---- CIA Interrupt ----

AddICRVector	=   -6
RemICRVector	=  -12
AbleICR		=  -18
SetICR		=  -24
LVOOpenResource	= -498
LVOOpenLibrary 	= -552
LVOCloseLibrary	= -414
LVODelay	= -198

ciatalo = $400
ciatahi = $500
ciatblo = $600
ciatbhi = $700
ciacra  = $E00
ciacrb  = $F00

SetCIAInt	movem.l	d0-d7/a0-a6,-(a7)
	clr.l	CIAAbase
	MOVEQ	#2,D6
	LEA	$BFD000,A5
	MOVE.B	#'b',CIAAname+3
SetCIALoop
	MOVEQ	#0,D0
	LEA	CIAAname(PC),A1
	CALLEXEC	OpenResource
	MOVE.L	D0,CIAAbase
	tst.l	d0
	BEQ.W	mt_Return
	
	CALLEXEC	Disable
	
	MOVE.L	CIAAbase(PC),A6
	CMP.W	#2,D6
	bne.s	TryTimerA	;previously BEQ.S !
TryTimerB
	LEA	MusicIntServer(PC),A1
	MOVEQ	#1,D0	; Bit 1: Timer B
	JSR	AddICRVector(A6)
	MOVE.w	#1,TimerFlag
	TST.L	D0
	BNE.S	CIAError
	MOVE.L	A5,CIAAaddr
	;MOVE.B	#$02,$D00(A5)
	MOVE.B	#$97,ciatblo(A5)
	MOVE.B	#$01,ciatbhi(A5)
	MOVE.B	#$82,D0
	jsr	AbleICR(a6)
	MOVE.B	#$02,D0
	jsr	SetICR(a6)
	CALLEXEC	Enable
mt_Return	movem.l	(a7)+,d0-d7/a0-a6
	RTS

TryTimerA
	LEA	MusicIntServer(PC),A1
	MOVEQ	#0,D0	; Bit 0: Timer A
	JSR	AddICRVector(A6)
	CLR.w	TimerFlag
	TST.L	D0
	BNE.S	CIAError
	MOVE.L	A5,CIAAaddr
	;MOVE.B	#$01,$D00(A5)
	MOVE.B	#$97,ciatalo(A5)
	MOVE.B	#$01,ciatahi(A5)
	MOVE.B	#$81,D0
	jsr	AbleICR(a6)
	MOVE.B	#$01,D0
	jsr	SetICR(a6)
	CALLEXEC	Enable
	movem.l	(a7)+,d0-d7/a0-a6
	RTS

CIAError
	CALLEXEC	Enable
	MOVE.B	#'a',CIAAname+3
	LEA	$BFE001,A5
	SUBQ.W	#1,D6
	BNE.W	SetCIALoop
	CLR.L	CIAAbase
	movem.l	(a7)+,d0-d7/a0-a6
	RTS

ResetCIAInt	movem.l	d0-d7/a0-a6,-(a7)
	MOVE.L	CIAAbase(PC),D0
	BEQ.B	mt_Return
	CLR.L	CIAAbase
	move.l	d0,-(a7)
	CALLEXEC	Disable
	MOVE.L	(a7)+,A6
	MOVE.L	CIAAaddr(PC),A5
	TST.w	TimerFlag
	BEQ.S	ResTimerA
	;BCLR	#0,ciacrb(A5)	;stop timer B
	MOVEq	#$02,D0
	jsr	AbleICR(a6)
	MOVEQ	#1,D0
	BRA.S	RemInt

ResTimerA
	;BCLR	#0,ciacra(A5)	;stop timer A
	MOVEq	#$01,D0
	jsr	AbleICR(a6)
	MOVEQ	#0,D0
RemInt	LEA	MusicIntServer(PC),A1
	JSR	RemICRVector(A6)
	CALLEXEC	Enable
	movem.l	(a7)+,d0-d7/a0-a6
	RTS

CIAAaddr	dc.l 0
CIAAname	dc.b "ciab.resource",0
CIAAbase	dc.l 0
TimerFlag	dc.w 0
TimerValue	dc.l 0
GfxName	dc.b "graphics.library",0,0

MusicIntServer
	dc.l 0,0
	dc.b 2,5 ; type, priority
	dc.l musintname
	dc.l 0,p4a_int

musintname	dc.b "Player40A_Int",0,0

	cnop	0,4

p4a_address	ds.l	1

p4a_deinit	movem.l	d0/d1/a0/a1,-(a7)
	move.l	p4a_address(pc),a0
	MOVE.L	16(a0),D0	;pointer to first sample or zero!
	beq.s	pure_mod	;not played yet!
	moveq	#0,d1
	MOVE.B	2(A0),D1
	SUBQ.W	#1,D1
	LEA	$10(A0),A1
.resmpl	sub.L	D0,(A1)	;re-offset samplepointers
	sub.L	D0,6(A1)
	LEA	$10(A1),A1
	DBRA	D1,.resmpl
	moveq	#0,d0
	MOVE.B	2(A0),D0
	addq.b	#1,d0
	asl.w	#4,d0
	move.l	8(a0),d1
	sub.l	d0,d1	;original module address
	move.l	d0,8(a0)
	sub.l	d1,4(a0)
	sub.l	d1,12(a0)
pure_mod	movem.l	(a7)+,d0/d1/a0/a1
	rts

p4a_init	movem.l	d0-a6,-(a7)
	lea	$dff000,a5
	LEA	p4a_base(PC),A3
	MOVE.L	A0,p4a_data-p4a_base(A3)
	MOVE.L	A0,D0
	ADD.L	D0,4(A0)
	ADD.L	D0,8(A0)
	ADD.L	D0,12(A0)
	MOVE.L	12(A0),D0
	MOVEQ	#0,D1
	MOVE.B	2(A0),D1
	SUBQ.W	#1,D1
	LEA	$10(A0),A1
lbC009E82	ADD.L	D0,(A1)
	ADD.L	D0,6(A1)
	LEA	$10(A1),A1
	DBRA	D1,lbC009E82
	LEA	lbL00AB96(PC),A1
	MOVEQ	#$14,D0
lbC009E96	CLR.W	(A1)+
	DBRA	D0,lbC009E96
	LEA	lbL00ABC2(PC),A1
	MOVEQ	#$14,D0
lbC009EA2	CLR.W	(A1)+
	DBRA	D0,lbC009EA2
	LEA	lbL00ABEE(PC),A1
	MOVEQ	#$14,D0
lbC009EAE	CLR.W	(A1)+
	DBRA	D0,lbC009EAE
	LEA	lbL00AC1A(PC),A1
	MOVEQ	#$14,D0
lbC009EBA	CLR.W	(A1)+
	DBRA	D0,lbC009EBA
	MOVE.L	8(A0),A1
	MOVE.L	A1,$14(A3)
	MOVEQ	#0,D1
	MOVE.W	(A1)+,D1
	ADD.L	4(A0),D1
	MOVE.L	D1,-$90(A3)
	MOVEQ	#0,D1
	MOVE.W	(A1)+,D1
	ADD.L	4(A0),D1
	MOVE.L	D1,-$64(A3)
	MOVEQ	#0,D1
	MOVE.W	(A1)+,D1
	ADD.L	4(A0),D1
	MOVE.L	D1,-$38(A3)
	MOVEQ	#0,D1
	MOVE.W	(A1)+,D1
	ADD.L	4(A0),D1
	MOVE.L	D1,-12(A3)
	MOVE.L	A1,12(A3)
	MOVE.L	4(A0),$18(A3)
	;LEA	lbC00AB30(PC),A0
	;MOVE.L	A0,$1C(A3)
	MOVE.W	#$3F,4(A3)
	MOVE.W	#6,6(A3)
	MOVE.W	#5,8(A3)
	CLR.W	10(A3)
	CLR.L	$10(A3)
	CLR.W	(A3)
	;MOVE.B	#$3F,$BFDD00
	;MOVE.B	#$81,$BFDD00
	;MOVE.B	#$97,$BFD400
	;MOVE.B	#1,$BFD500
	;MOVE.B	#$90,$BFDE00
	;MOVE.W	#$6000,$9C(A5)
	;MOVE.W	#$A000,$9A(A5)
	;MOVE.L	$78,$24(A3)
	;OR.B	#2,$BFE001
	MOVE.W	#15,$96(A5)
	MOVEQ	#0,D0
	;LEA	lbC00AB26(PC),A0
	;MOVE.L	A0,$78
	lea	p4a_intcount(pc),a0
	moveq	#0,d0
	move.w	d0,(a0)
	move.W	d0,$A8(A5)
	move.W	d0,$B8(A5)
	move.W	d0,$C8(A5)
	move.W	d0,$D8(A5)
	movem.l	(a7)+,d0-a6
	RTS

p4a_end	movem.l	d0/a5,-(a7)
	lea	$dff000,a5
	moveq	#0,d0
	move.W	d0,$A8(A5)
	move.W	d0,$B8(A5)
	move.W	d0,$C8(A5)
	move.W	d0,$D8(A5)
	move.w	#$f,$96(A5)
	;MOVE.L	lbL00AC6A(PC),$78
	movem.l	(a7)+,d0/a5
	rts

oldintena	dc.w	0

p4a_music	movem.l	d1-a6,-(a7)
	move.l	CIAABase(pc),d0
	beq.s	CIA_failure
	LEA	$DFF000,A6
	move.w	$1c(a6),d0
	or.w	#$8000,d0
	move.w	d0,oldintena
	move.w	#$1ff7,$9a(a6) ;just leaves cia-x irqs enabled
	bsr.s	p4_replay
	move.w	oldintena(pc),$9a(a6)
CIA_failure	movem.l	(a7)+,d1-a6
	moveq	#0,d0
	rts

p4_replay	LEA	p4a_base(PC),A3
	MOVE.W	(A3),D4
	ADDQ.W	#1,D4
	CMP.W	lbW00AC4C(PC),D4
	BEQ	lbC00A35C
	LEA	lbL00AB96(PC),A5
	LEA	$A0(A6),A4
	MOVE.W	D4,(A3)
	MOVEQ	#3,D5
lbC009FC4	TST.W	$1E(A5)
	BEQ	lbC00A25C
	MOVE.B	1(A5),D0
	AND.W	#15,D0
	LEA	lbW009FE0(PC),A1
	ADD.W	D0,D0
	ADD.W	0(A1,D0.W),A1
	JMP	(A1)

lbW009FE0	dc.w	lbC00A25C-lbW009FE0
	dc.w	lbC00A10C-lbW009FE0
	dc.w	lbC00A12E-lbW009FE0
	dc.w	lbC00A150-lbW009FE0
	dc.w	lbC00A6D0-lbW009FE0
	dc.w	lbC00A1A4-lbW009FE0
	dc.w	lbC00A1DE-lbW009FE0
	dc.w	lbC00A682-lbW009FE0
	dc.w	lbC00A0D4-lbW009FE0
	dc.w	lbC00A25C-lbW009FE0
	dc.w	lbC00A220-lbW009FE0
	dc.w	lbC00A25C-lbW009FE0
	dc.w	lbC00A25C-lbW009FE0
	dc.w	lbC00A25C-lbW009FE0
	dc.w	lbC00A000-lbW009FE0
	dc.w	lbC00A25C-lbW009FE0

lbC00A000	MOVE.B	2(A5),D0
	AND.B	#$F0,D0
	CMP.W	#$90,D0
	BEQ.S	lbC00A072
	CMP.W	#$C0,D0
	BEQ.S	lbC00A056
	CMP.W	#$D0,D0
	BNE	lbC00A25C
	MOVE.B	2(A5),D0
	AND.W	#15,D0
	SUBQ.W	#1,D0
	CMP.W	(A3),D0
	BNE	lbC00A25C
	MOVE.W	$2A(A5),D0
	OR.W	#$8000,D0
	OR.W	D0,2(A3)
	MOVE.L	4(A5),A0
	MOVE.L	(A0)+,(A4)
	MOVE.W	(A0),4(A4)
	;MOVE.B	#$91,$BFDE00
	START_TIMER
	;LEA	lbC00AB12(PC),A0
	;MOVE.L	A0,$78
	BRA	lbC00A25C

lbC00A056	MOVE.B	2(A5),D0
	AND.W	#15,D0
	SUBQ.W	#1,D0
	CMP.W	(A3),D0
	BNE	lbC00A25C
	CLR.W	8(A4)
	CLR.W	14(A5)
	BRA	lbC00A25C

lbC00A072	SUBQ.W	#1,$1A(A5)
	BNE	lbC00A25C
	MOVE.W	$2A(A5),D0
	MOVE.W	D0,$96(A6)
	OR.W	#$8000,D0
	OR.W	D0,2(A3)
	MOVE.L	4(A5),A0
	MOVE.L	(A0)+,(A4)
	MOVE.W	(A0),4(A4)
	;MOVE.B	#$91,$BFDE00
	START_TIMER
	;LEA	lbC00AB12(PC),A0
	;MOVE.L	A0,$78
	MOVE.B	2(A5),D0
	AND.W	#15,D0
	MOVE.W	D0,$1A(A5)
	BRA	lbC00A25C

lbW00A0B4	dc.w	1
	dc.w	$200
	dc.w	$102
	dc.w	1
	dc.w	$200
	dc.w	$102
	dc.w	1
	dc.w	$200
	dc.w	$102
	dc.w	1
	dc.w	$200
	dc.w	$102
	dc.w	1
	dc.w	$200
	dc.w	$102
	dc.w	1

lbC00A0D4	MOVE.W	(A3),D0
	MOVE.B	lbW00A0B4(PC,D0.W),D0
	BEQ.S	lbC00A0EC
	CMP.W	#1,D0
	BEQ.S	lbC00A0F0
	MOVE.B	2(A5),D0
	AND.W	#15,D0
	BNE.S	lbC00A0F8
lbC00A0EC	MOVEQ	#0,D0
	BRA.S	lbC00A0F8

lbC00A0F0	MOVEQ	#0,D0
	MOVE.B	2(A5),D0
	LSR.B	#4,D0
lbC00A0F8	ADD.W	D0,D0
	ADD.W	$1C(A5),D0
	LEA	lbW00AC6E(PC),A1
	MOVE.W	0(A1,D0.W),6(A4)
	BRA	lbC00A25C

lbC00A10C	MOVEQ	#0,D0
	MOVE.B	2(A5),D0
	SUB.W	D0,$10(A5)
	CMP.W	#$71,$10(A5)
	BGE.S	lbC00A124
	MOVE.W	#$71,$10(A5)
lbC00A124	MOVE.W	$10(A5),6(A4)
	BRA	lbC00A25C

lbC00A12E	MOVEQ	#0,D0
	MOVE.B	2(A5),D0
	ADD.W	D0,$10(A5)
	CMP.W	#$358,$10(A5)
	BLE.S	lbC00A146
	MOVE.W	#$358,$10(A5)
lbC00A146	MOVE.W	$10(A5),6(A4)
	BRA	lbC00A25C

lbC00A150	MOVEM.W	$12(A5),D0/D1
	TST.W	$12(A5)
	BEQ	lbC00A25C
	CMP.W	$10(A5),D0
	BEQ.S	lbC00A19C
	BLT.S	lbC00A180
	ADD.W	D1,$10(A5)
	CMP.W	$10(A5),D0
	BGT.S	lbC00A192
	MOVE.W	D0,$10(A5)
	CLR.W	$12(A5)
	MOVE.W	D0,6(A4)
	BRA	lbC00A25C

lbC00A180	SUB.W	D1,$10(A5)
	CMP.W	$10(A5),D0
	BLT.S	lbC00A192
	MOVE.W	D0,$10(A5)
	CLR.W	$12(A5)
lbC00A192	MOVE.W	$10(A5),6(A4)
	BRA	lbC00A25C

lbC00A19C	CLR.W	$12(A5)
	BRA	lbC00A25C

lbC00A1A4	MOVEQ	#0,D0
	MOVE.B	2(A5),D0
	BMI.S	lbC00A1BE
	SUB.W	D0,14(A5)
	BPL.S	lbC00A1B6
	CLR.W	14(A5)
lbC00A1B6	MOVE.W	14(A5),8(A4)
	BRA.S	lbC00A150

lbC00A1BE	AND.W	#15,D0
	ADD.W	D0,14(A5)
	CMP.W	#$40,14(A5)
	BLE.S	lbC00A1D4
	MOVE.W	#$40,14(A5)
lbC00A1D4	MOVE.W	14(A5),8(A4)
	BRA	lbC00A150

lbC00A1DE	MOVE.W	$10(A5),6(A4)
	MOVEQ	#0,D0
	MOVE.B	2(A5),D0
	BMI.S	lbC00A200
	SUB.W	D0,14(A5)
	BPL.S	lbC00A1F6
	CLR.W	14(A5)
lbC00A1F6	MOVE.W	14(A5),8(A4)
	BRA	lbC00A6D0

lbC00A200	AND.W	#15,D0
	ADD.W	D0,14(A5)
	CMP.W	#$40,14(A5)
	BLE.S	lbC00A216
	MOVE.W	#$40,14(A5)
lbC00A216	MOVE.W	14(A5),8(A4)
	BRA	lbC00A6D0

lbC00A220	MOVE.W	$10(A5),6(A4)
	MOVEQ	#0,D0
	MOVE.B	2(A5),D0
	BMI.S	lbC00A240
	SUB.W	D0,14(A5)
	BPL.S	lbC00A238
	CLR.W	14(A5)
lbC00A238	MOVE.W	14(A5),8(A4)
	BRA.S	lbC00A25C

lbC00A240	AND.W	#15,D0
	ADD.W	D0,14(A5)
	CMP.W	#$40,14(A5)
	BLE.S	lbC00A256
	MOVE.W	#$40,14(A5)
lbC00A256	MOVE.W	14(A5),8(A4)
lbC00A25C	LEA	$2C(A5),A5
	LEA	$10(A4),A4
	DBRA	D5,lbC009FC4
	CMP.W	lbW00AC4E(PC),D4
	BEQ.S	lbC00A270
	RTS

lbC00A270	TST.W	$10(A3)
	BEQ.S	lbC00A27E
	SUBQ.W	#1,$10(A3)
	BRA	lbC00A35A

lbC00A27E	LEA	lbL00AB96(PC),A5
	MOVE.L	p4a_data(PC),A0
	LEA	lbW00AC6E(PC),A1
	MOVE.L	lbL00AC5E(PC),D1
	MOVEQ	#3,D5
lbC00A290	TST.B	3(A5)
	BEQ.S	lbC00A2B0
	BMI.S	lbC00A2AA
	SUBQ.B	#1,3(A5)
	CLR.W	$1E(A5)
	LEA	$2C(A5),A5
	DBRA	D5,lbC00A290
	BRA.S	lbC00A30A

lbC00A2AA	ADDQ.B	#1,3(A5)
	BRA.S	lbC00A2E8

lbC00A2B0	TST.B	$29(A5)
	BEQ.S	lbC00A2C6
	SUBQ.B	#1,$29(A5)
	ADDQ.L	#4,$24(A5)
	MOVE.L	$24(A5),A2
	MOVE.L	(A2),(A5)
	BRA.S	lbC00A2E8

lbC00A2C6	MOVE.L	$20(A5),A2
	TST.B	(A2)
	BMI.S	lbC00A2D2
	MOVE.L	(A2),(A5)
	BRA.S	lbC00A2E4

lbC00A2D2	MOVE.W	(A2)+,$28(A5)
	MOVEQ	#0,D0
	MOVE.W	(A2),D0
	ADD.L	D1,D0
	MOVE.L	D0,A2
	MOVE.L	(A2),(A5)
	MOVE.L	D0,$24(A5)
lbC00A2E4	ADDQ.L	#4,$20(A5)
lbC00A2E8	MOVE.W	(A5),D0
	ST	$1E(A5)
	AND.W	#$1F0,D0
	BEQ.S	lbC00A302
	LEA	0(A0,D0.W),A4
	MOVE.L	A4,4(A5)
	MOVE.L	12(A4),12(A5)
lbC00A302	LEA	$2C(A5),A5
	DBRA	D5,lbC00A290
lbC00A30A	SUBQ.W	#1,4(A3)
	BPL.S	lbC00A35A
	MOVE.W	#$3F,4(A3)
	MOVE.L	12(A3),A1
	MOVEQ	#0,D0
	MOVE.W	(A1)+,D0
	BPL.S	lbC00A332
	MOVE.L	lbL00AC5A(PC),A1
	MOVEQ	#0,D0
	MOVE.B	3(A0),D0
	LSL.W	#2,D0
	LEA	0(A1,D0.W),A1
	MOVE.W	(A1)+,D0
lbC00A332	ADD.L	D1,D0
	MOVE.L	D0,-$90(A3)
	MOVEQ	#0,D0
	MOVE.W	(A1)+,D0
	ADD.L	D1,D0
	MOVE.L	D0,-$64(A3)
	MOVEQ	#0,D0
	MOVE.W	(A1)+,D0
	ADD.L	D1,D0
	MOVE.L	D0,-$38(A3)
	MOVEQ	#0,D0
	MOVE.W	(A1)+,D0
	ADD.L	D1,D0
	MOVE.L	D0,-12(A3)
	MOVE.L	A1,12(A3)
lbC00A35A	RTS

lbC00A35C	CLR.W	(A3)
	TST.W	$12(A3)
	BEQ.S	lbC00A36C
	SUBQ.W	#1,$12(A3)
	BRA	lbC00A416

lbC00A36C	TST.W	10(A3)
	BEQ.S	lbC00A376
	BSR	lbC00A270
lbC00A376	LEA	lbL00AC1A(PC),A5
	LEA	$D0(A6),A4
	LEA	lbW00AC6E(PC),A2
	;MOVE.B	#$91,$BFDE00
	START_TIMER
	;LEA	lbC00AB12(PC),A0
	;MOVE.L	A0,$78
	MOVE.W	#$8000,D4
	MOVEQ	#3,D5
lbC00A398	TST.W	$1E(A5)
	BEQ.S	lbC00A3FA
	MOVE.B	1(A5),D0
	AND.W	#15,D0
	LEA	lbW00A43A(PC),A1
	ADD.W	D0,D0
	ADD.W	0(A1,D0.W),A1
	JMP	(A1)

lbC00A3B2	MOVE.B	(A5),D0
	AND.W	#$7E,D0
	BEQ.S	lbC00A3FA
	CLR.B	$17(A5)
	ADD.W	12(A5),D0
	MOVE.W	D0,$1C(A5)
	MOVE.W	0(A2,D0.W),$10(A5)
	MOVE.W	$2A(A5),D0
	MOVE.W	D0,$96(A6)
	EOR.W	D0,D4
	MOVE.L	8(A5),D1
	CLR.L	8(A5)
	MOVE.L	4(A5),A1
	MOVE.L	(A1)+,D0
	ADD.L	D1,D0
	MOVE.L	D0,(A4)
	ASR.W	#1,D1
	MOVE.W	(A1),D0
	SUB.W	D1,D0
	BPL.S	lbC00A3F6
	MOVE.L	-4(A1),(A4)
	MOVEQ	#1,D0
lbC00A3F6	MOVE.W	D0,4(A4)
lbC00A3FA	MOVE.W	$10(A5),6(A4)
	MOVE.W	14(A5),8(A4)
	LEA	-$2C(A5),A5
	LEA	-$10(A4),A4
	DBRA	D5,lbC00A398
	MOVE.W	D4,2(A3)
lbC00A416	RTS

lbC00A418	MOVE.B	2(A5),D0
	BEQ.S	lbC00A422
	MOVE.B	D0,$15(A5)
lbC00A422	MOVE.B	(A5),D0
	AND.W	#$7E,D0
	BEQ.S	lbC00A3FA
	ADD.W	12(A5),D0
	MOVE.W	D0,$1C(A5)
	MOVE.W	0(A2,D0.W),$12(A5)
	BRA.S	lbC00A3FA

lbW00A43A	dc.w	lbC00A3B2-lbW00A43A
	dc.w	lbC00A3B2-lbW00A43A
	dc.w	lbC00A3B2-lbW00A43A
	dc.w	lbC00A418-lbW00A43A
	dc.w	lbC00A4DA-lbW00A43A
	dc.w	lbC00A422-lbW00A43A
	dc.w	lbC00A3B2-lbW00A43A
	dc.w	lbC00A508-lbW00A43A
	dc.w	lbC00A3B2-lbW00A43A
	dc.w	lbC00A45A-lbW00A43A
	dc.w	lbC00A3B2-lbW00A43A
	dc.w	lbC00A474-lbW00A43A
	dc.w	lbC00A46A-lbW00A43A
	dc.w	lbC00A486-lbW00A43A
	dc.w	lbC00A536-lbW00A43A
	dc.w	lbC00A656-lbW00A43A

lbC00A45A	MOVEQ	#0,D0
	MOVE.B	2(A5),D0
	LSL.W	#8,D0
	MOVE.L	D0,8(A5)
	BRA	lbC00A3B2

lbC00A46A	MOVE.B	2(A5),15(A5)
	BRA	lbC00A3B2

lbC00A474	MOVEQ	#0,D0
	MOVE.B	2(A5),D0
	ASL.W	#2,D0
	MOVE.L	lbL00AC5A(PC),A0
	ADD.W	D0,A0
	MOVE.L	A0,12(A3)
lbC00A486	MOVE.W	#$3F,4(A3)
	MOVE.L	12(A3),A1
	MOVEQ	#0,D0
	MOVE.W	(A1)+,D0
	BPL.S	lbC00A4A6
	MOVE.L	lbL00AC5A(PC),A1
	MOVEQ	#0,D0
	MOVE.B	3(A0),D0
	LEA	0(A1,D0.W),A1
	MOVE.W	(A1)+,D0
lbC00A4A6	ADD.L	lbL00AC5E(PC),D0
	MOVE.L	D0,-$90(A3)
	MOVEQ	#0,D0
	MOVE.W	(A1)+,D0
	ADD.L	lbL00AC5E(PC),D0
	MOVE.L	D0,-$64(A3)
	MOVEQ	#0,D0
	MOVE.W	(A1)+,D0
	ADD.L	lbL00AC5E(PC),D0
	MOVE.L	D0,-$38(A3)
	MOVEQ	#0,D0
	MOVE.W	(A1)+,D0
	ADD.L	lbL00AC5E(PC),D0
	MOVE.L	D0,-12(A3)
	MOVE.L	A1,12(A3)
	BRA	lbC00A3B2

lbC00A4DA	MOVE.B	2(A5),D0
	BEQ	lbC00A3B2
	MOVE.B	D0,D1
	MOVE.B	$16(A5),D2
	AND.B	#15,D0
	BEQ.S	lbC00A4F4
	AND.B	#$F0,D2
	OR.B	D0,D2
lbC00A4F4	AND.B	#$F0,D1
	BEQ.S	lbC00A500
	AND.B	#15,D2
	OR.B	D1,D2
lbC00A500	MOVE.B	D2,$16(A5)
	BRA	lbC00A3B2

lbC00A508	MOVE.B	2(A5),D0
	BEQ	lbC00A3B2
	MOVE.B	D0,D1
	MOVE.B	$16(A5),D2
	AND.B	#15,D0
	BEQ.S	lbC00A522
	AND.B	#$F0,D2
	OR.B	D0,D2
lbC00A522	AND.B	#$F0,D1
	BEQ.S	lbC00A52E
	AND.B	#15,D2
	OR.B	D1,D2
lbC00A52E	MOVE.B	D2,$18(A5)
	BRA	lbC00A3B2

lbC00A536	MOVE.B	2(A5),D0
	AND.B	#$F0,D0
	BEQ.S	lbC00A57E
	CMP.W	#$10,D0
	BEQ.S	lbC00A594
	CMP.W	#$20,D0
	BEQ.S	lbC00A5B8
	CMP.W	#$50,D0
	BEQ	lbC00A5FC
	CMP.W	#$90,D0
	BEQ	lbC00A610
	CMP.W	#$A0,D0
	BEQ.S	lbC00A5DC
	CMP.W	#$B0,D0
	BEQ	lbC00A620
	CMP.W	#$D0,D0
	BEQ	lbC00A638
	CMP.W	#$E0,D0
	BEQ	lbC00A642
	BRA	lbC00A3B2

lbC00A57E	MOVE.B	2(A5),D0
	AND.B	#$FD,$BFE001
	OR.B	D0,$BFE001
	BRA	lbC00A3B2

lbC00A594	MOVE.B	2(A5),D0
	AND.W	#15,D0
	SUB.W	D0,$10(A5)
	CMP.W	#$71,$10(A5)
	BGE.S	lbC00A5AE
	MOVE.W	#$71,$10(A5)
lbC00A5AE	MOVE.W	$10(A5),6(A4)
	BRA	lbC00A3B2

lbC00A5B8	MOVE.B	2(A5),D0
	AND.W	#15,D0
	ADD.W	D0,$10(A5)
	CMP.W	#$358,$10(A5)
	BLE.S	lbC00A5AE
	MOVE.W	#$358,$10(A5)
	MOVE.W	$10(A5),6(A4)
	BRA	lbC00A3B2

lbC00A5DC	MOVE.B	2(A5),D0
	AND.W	#15,D0
	ADD.W	D0,14(A5)
	CMP.W	#$40,14(A5)
	BLE	lbC00A3B2
	MOVE.W	#$40,14(A5)
	BRA	lbC00A3B2

lbC00A5FC	MOVE.B	2(A5),D0
	AND.W	#15,D0
	MULU	#$4A,D0
	MOVE.W	D0,12(A5)
	BRA	lbC00A3B2

lbC00A610	MOVE.B	2(A5),D0
	AND.W	#15,D0
	MOVE.W	D0,$1A(A5)
	BRA	lbC00A3B2

lbC00A620	MOVE.B	2(A5),D0
	AND.W	#15,D0
	SUB.W	D0,14(A5)
	BPL	lbC00A3B2
	CLR.W	14(A5)
	BRA	lbC00A3B2

lbC00A638	MOVE.W	$2A(A5),D0
	OR.W	D0,D4
	BRA	lbC00A3B2

lbC00A642	MOVE.B	2(A5),D0
	AND.W	#15,D0
	MOVE.W	D0,$10(A3)
	MOVE.W	D0,$12(A3)
	BRA	lbC00A3B2

lbC00A656	MOVE.B	2(A5),D0
	CMP.B	#1,D0
	BNE.S	lbC00A670
	MOVE.B	D0,7(A3)
	MOVE.B	D0,9(A3)
	ST	10(A3)
	BRA	lbC00A3B2

lbC00A670	MOVE.B	D0,7(A3)
	SUBQ.B	#1,D0
	MOVE.B	D0,9(A3)
	CLR.W	10(A3)
	BRA	lbC00A3B2

lbC00A682	MOVEQ	#0,D2
	MOVE.B	$18(A5),D0
	AND.W	#15,D0
	LSL.W	#6,D0
	MOVE.B	$19(A5),D1
	LSR.W	#1,D1
	AND.W	#$3E,D1
	ADD.W	D1,D0
	MOVE.W	lbW00A712(PC,D0.W),D2
	MOVE.W	14(A5),D0
	TST.B	$19(A5)
	BMI.S	lbC00A6B4
	ADD.W	D2,D0
	CMP.W	#$40,D0
	BLE.S	lbC00A6BA
	MOVEQ	#$40,D0
	BRA.S	lbC00A6BA

lbC00A6B4	SUB.W	D2,D0
	BPL.S	lbC00A6BA
	MOVEQ	#0,D0
lbC00A6BA	MOVE.W	D0,8(A4)
	MOVE.B	$18(A5),D0
	LSR.B	#2,D0
	AND.W	#$3C,D0
	ADD.B	D0,$19(A5)
	BRA	lbC00A25C

lbC00A6D0	MOVEQ	#0,D2
	MOVE.B	$16(A5),D0
	AND.W	#15,D0
	LSL.W	#6,D0
	MOVE.B	$17(A5),D1
	LSR.W	#1,D1
	AND.W	#$3E,D1
	ADD.W	D1,D0
	MOVE.W	lbW00A712(PC,D0.W),D2
	MOVE.W	$10(A5),D0
	TST.B	$17(A5)
	BMI.S	lbC00A6FA
	ADD.W	D2,D0
	BRA.S	lbC00A6FC

lbC00A6FA	SUB.W	D2,D0
lbC00A6FC	MOVE.W	D0,6(A4)
	MOVE.B	$16(A5),D0
	LSR.B	#2,D0
	AND.W	#$3C,D0
	ADD.B	D0,$17(A5)
	BRA	lbC00A25C

lbW00A712	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	2
	dc.w	2
	dc.w	2
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	3
	dc.w	2
	dc.w	2
	dc.w	2
	dc.w	1
	dc.w	1
	dc.w	1
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	1
	dc.w	1
	dc.w	2
	dc.w	2
	dc.w	3
	dc.w	3
	dc.w	4
	dc.w	4
	dc.w	4
	dc.w	5
	dc.w	5
	dc.w	5
	dc.w	5
	dc.w	5
	dc.w	5
	dc.w	5
	dc.w	5
	dc.w	5
	dc.w	5
	dc.w	5
	dc.w	4
	dc.w	4
	dc.w	4
	dc.w	3
	dc.w	3
	dc.w	2
	dc.w	2
	dc.w	1
	dc.w	1
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	1
	dc.w	2
	dc.w	3
	dc.w	3
	dc.w	4
	dc.w	5
	dc.w	5
	dc.w	6
	dc.w	6
	dc.w	7
	dc.w	7
	dc.w	7
	dc.w	7
	dc.w	7
	dc.w	7
	dc.w	7
	dc.w	7
	dc.w	7
	dc.w	7
	dc.w	7
	dc.w	6
	dc.w	6
	dc.w	5
	dc.w	5
	dc.w	4
	dc.w	3
	dc.w	3
	dc.w	2
	dc.w	1
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	1
	dc.w	2
	dc.w	3
	dc.w	4
	dc.w	5
	dc.w	6
	dc.w	7
	dc.w	7
	dc.w	8
	dc.w	8
	dc.w	9
	dc.w	9
	dc.w	9
	dc.w	9
	dc.w	9
	dc.w	9
	dc.w	9
	dc.w	9
	dc.w	9
	dc.w	8
	dc.w	8
	dc.w	7
	dc.w	7
	dc.w	6
	dc.w	5
	dc.w	4
	dc.w	3
	dc.w	2
	dc.w	1
	dc.w	0
	dc.w	0
	dc.w	1
	dc.w	2
	dc.w	3
	dc.w	4
	dc.w	5
	dc.w	6
	dc.w	7
	dc.w	8
	dc.w	9
	dc.w	9
	dc.w	10
	dc.w	11
	dc.w	11
	dc.w	11
	dc.w	11
	dc.w	11
	dc.w	11
	dc.w	11
	dc.w	11
	dc.w	11
	dc.w	10
	dc.w	9
	dc.w	9
	dc.w	8
	dc.w	7
	dc.w	6
	dc.w	5
	dc.w	4
	dc.w	3
	dc.w	2
	dc.w	1
	dc.w	0
	dc.w	1
	dc.w	2
	dc.w	4
	dc.w	5
	dc.w	6
	dc.w	7
	dc.w	8
	dc.w	9
	dc.w	10
	dc.w	11
	dc.w	12
	dc.w	12
	dc.w	13
	dc.w	13
	dc.w	13
	dc.w	13
	dc.w	13
	dc.w	13
	dc.w	13
	dc.w	12
	dc.w	12
	dc.w	11
	dc.w	10
	dc.w	9
	dc.w	8
	dc.w	7
	dc.w	6
	dc.w	5
	dc.w	4
	dc.w	2
	dc.w	1
	dc.w	0
	dc.w	1
	dc.w	3
	dc.w	4
	dc.w	6
	dc.w	7
	dc.w	8
	dc.w	10
	dc.w	11
	dc.w	12
	dc.w	13
	dc.w	14
	dc.w	14
	dc.w	15
	dc.w	15
	dc.w	15
	dc.w	15
	dc.w	15
	dc.w	15
	dc.w	15
	dc.w	14
	dc.w	14
	dc.w	13
	dc.w	12
	dc.w	11
	dc.w	10
	dc.w	8
	dc.w	7
	dc.w	6
	dc.w	4
	dc.w	3
	dc.w	1
	dc.w	0
	dc.w	1
	dc.w	3
	dc.w	5
	dc.w	6
	dc.w	8
	dc.w	9
	dc.w	11
	dc.w	12
	dc.w	13
	dc.w	14
	dc.w	15
	dc.w	$10
	dc.w	$11
	dc.w	$11
	dc.w	$11
	dc.w	$11
	dc.w	$11
	dc.w	$11
	dc.w	$11
	dc.w	$10
	dc.w	15
	dc.w	14
	dc.w	13
	dc.w	12
	dc.w	11
	dc.w	9
	dc.w	8
	dc.w	6
	dc.w	5
	dc.w	3
	dc.w	1
	dc.w	0
	dc.w	1
	dc.w	3
	dc.w	5
	dc.w	7
	dc.w	9
	dc.w	11
	dc.w	12
	dc.w	14
	dc.w	15
	dc.w	$10
	dc.w	$11
	dc.w	$12
	dc.w	$13
	dc.w	$13
	dc.w	$13
	dc.w	$13
	dc.w	$13
	dc.w	$13
	dc.w	$13
	dc.w	$12
	dc.w	$11
	dc.w	$10
	dc.w	15
	dc.w	14
	dc.w	12
	dc.w	11
	dc.w	9
	dc.w	7
	dc.w	5
	dc.w	3
	dc.w	1
	dc.w	0
	dc.w	2
	dc.w	4
	dc.w	6
	dc.w	8
	dc.w	10
	dc.w	12
	dc.w	13
	dc.w	15
	dc.w	$10
	dc.w	$12
	dc.w	$13
	dc.w	$14
	dc.w	$14
	dc.w	$15
	dc.w	$15
	dc.w	$15
	dc.w	$15
	dc.w	$15
	dc.w	$14
	dc.w	$14
	dc.w	$13
	dc.w	$12
	dc.w	$10
	dc.w	15
	dc.w	13
	dc.w	12
	dc.w	10
	dc.w	8
	dc.w	6
	dc.w	4
	dc.w	2
	dc.w	0
	dc.w	2
	dc.w	4
	dc.w	6
	dc.w	9
	dc.w	11
	dc.w	13
	dc.w	15
	dc.w	$10
	dc.w	$12
	dc.w	$13
	dc.w	$15
	dc.w	$16
	dc.w	$16
	dc.w	$17
	dc.w	$17
	dc.w	$17
	dc.w	$17
	dc.w	$17
	dc.w	$16
	dc.w	$16
	dc.w	$15
	dc.w	$13
	dc.w	$12
	dc.w	$10
	dc.w	15
	dc.w	13
	dc.w	11
	dc.w	9
	dc.w	6
	dc.w	4
	dc.w	2
	dc.w	0
	dc.w	2
	dc.w	4
	dc.w	7
	dc.w	9
	dc.w	12
	dc.w	14
	dc.w	$10
	dc.w	$12
	dc.w	$14
	dc.w	$15
	dc.w	$16
	dc.w	$17
	dc.w	$18
	dc.w	$19
	dc.w	$19
	dc.w	$19
	dc.w	$19
	dc.w	$19
	dc.w	$18
	dc.w	$17
	dc.w	$16
	dc.w	$15
	dc.w	$14
	dc.w	$12
	dc.w	$10
	dc.w	14
	dc.w	12
	dc.w	9
	dc.w	7
	dc.w	4
	dc.w	2
	dc.w	0
	dc.w	2
	dc.w	5
	dc.w	8
	dc.w	10
	dc.w	13
	dc.w	15
	dc.w	$11
	dc.w	$13
	dc.w	$15
	dc.w	$17
	dc.w	$18
	dc.w	$19
	dc.w	$1A
	dc.w	$1B
	dc.w	$1B
	dc.w	$1B
	dc.w	$1B
	dc.w	$1B
	dc.w	$1A
	dc.w	$19
	dc.w	$18
	dc.w	$17
	dc.w	$15
	dc.w	$13
	dc.w	$11
	dc.w	15
	dc.w	13
	dc.w	10
	dc.w	8
	dc.w	5
	dc.w	2
	dc.w	0
	dc.w	2
	dc.w	5
	dc.w	8
	dc.w	11
	dc.w	14
	dc.w	$10
	dc.w	$12
	dc.w	$15
	dc.w	$17
	dc.w	$18
	dc.w	$1A
	dc.w	$1B
	dc.w	$1C
	dc.w	$1D
	dc.w	$1D
	dc.w	$1D
	dc.w	$1D
	dc.w	$1D
	dc.w	$1C
	dc.w	$1B
	dc.w	$1A
	dc.w	$18
	dc.w	$17
	dc.w	$15
	dc.w	$12
	dc.w	$10
	dc.w	14
	dc.w	11
	dc.w	8
	dc.w	5
	dc.w	2


p4a_intcount	dc.w	0
	
p4a_int	;move.w	#$fff,$dff180
	movem.l	d1-a6,-(a7)
	move.l	CIAAaddr(pc),a5
	move.w	p4a_intcount(pc),d0
	beq.s	p4a_end78
	LEA	$DFF0A0,A1
	lea	p4a_intcount(pc),a0
	subq.w	#1,d0
	beq.s	p4a_nop
	;move.w	#$f0,$dff180
	move.w	d0,(a0)
	MOVE.W	lbW00AC48(PC),$96-$a0(a1)
	move.w	TimerFlag(pc),d0
	beq.s	.timera
	move.b	#$19,ciacrb(a5)
	bra.s	p4a_end78
.timera	move.b	#$19,ciacra(a5)
	bra.s	p4a_end78
p4a_nop	;move.w	#$f00,$dff180
	move.w	d0,(a0)
	;MOVE.W	lbW00AC48(PC),D0
	MOVE.L	lbL00AB9A(PC),A0
	MOVE.L	6(A0),(A1)
	MOVE.W	10(A0),4(A1)
	MOVE.L	lbL00ABC6(PC),A0
	MOVE.L	6(A0),$10(A1)
	MOVE.W	10(A0),$14(A1)
	MOVE.L	lbL00ABF2(PC),A0
	MOVE.L	6(A0),$20(A1)
	MOVE.W	10(A0),$24(A1)
	MOVE.L	lbL00AC1E(PC),A0
	MOVE.L	6(A0),$30(A1)
	MOVE.W	10(A0),$34(A1)
p4a_end78	movem.l	(a7)+,d1-a6
	;move.w	#$aaa,$dff180
	moveq	#0,d0
	RTS


lbL00AB96	dc.l	0
lbL00AB9A	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	1
lbL00ABC2	dc.l	0
lbL00ABC6	dg.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	2
lbL00ABEE	dc.l	0
lbL00ABF2	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	4
lbL00AC1A	dc.l	0
lbL00AC1E	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	8
p4a_base	dc.w	0
lbW00AC48	dc.w	$8000
	dc.w	$3F
lbW00AC4C	dc.w	6
lbW00AC4E	dc.w	5
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
	dc.w	0
lbL00AC5A	dc.l	0
lbL00AC5E	dc.l	0
lbL00AC62	dc.l	0
p4a_data	dc.l	0
lbL00AC6A	dc.l	0
lbW00AC6E	dc.w	$358
	dc.w	$358
	dc.w	$328
	dc.w	$2FA
	dc.w	$2D0
	dc.w	$2A6
	dc.w	$280
	dc.w	$25C
	dc.w	$23A
	dc.w	$21A
	dc.w	$1FC
	dc.w	$1E0
	dc.w	$1C5
	dc.w	$1AC
	dc.w	$194
	dc.w	$17D
	dc.w	$168
	dc.w	$153
	dc.w	$140
	dc.w	$12E
	dc.w	$11D
	dc.w	$10D
	dc.w	$FE
	dc.w	$F0
	dc.w	$E2
	dc.w	$D6
	dc.w	$CA
	dc.w	$BE
	dc.w	$B4
	dc.w	$AA
	dc.w	$A0
	dc.w	$97
	dc.w	$8F
	dc.w	$87
	dc.w	$7F
	dc.w	$78
	dc.w	$71
	dc.w	$352
	dc.w	$352
	dc.w	$322
	dc.w	$2F5
	dc.w	$2CB
	dc.w	$2A2
	dc.w	$27D
	dc.w	$259
	dc.w	$237
	dc.w	$217
	dc.w	$1F9
	dc.w	$1DD
	dc.w	$1C2
	dc.w	$1A9
	dc.w	$191
	dc.w	$17B
	dc.w	$165
	dc.w	$151
	dc.w	$13E
	dc.w	$12C
	dc.w	$11C
	dc.w	$10C
	dc.w	$FD
	dc.w	$EF
	dc.w	$E1
	dc.w	$D5
	dc.w	$C9
	dc.w	$BD
	dc.w	$B3
	dc.w	$A9
	dc.w	$9F
	dc.w	$96
	dc.w	$8E
	dc.w	$86
	dc.w	$7E
	dc.w	$77
	dc.w	$71
	dc.w	$34C
	dc.w	$34C
	dc.w	$31C
	dc.w	$2F0
	dc.w	$2C5
	dc.w	$29E
	dc.w	$278
	dc.w	$255
	dc.w	$233
	dc.w	$214
	dc.w	$1F6
	dc.w	$1DA
	dc.w	$1BF
	dc.w	$1A6
	dc.w	$18E
	dc.w	$178
	dc.w	$163
	dc.w	$14F
	dc.w	$13C
	dc.w	$12A
	dc.w	$11A
	dc.w	$10A
	dc.w	$FB
	dc.w	$ED
	dc.w	$E0
	dc.w	$D3
	dc.w	$C7
	dc.w	$BC
	dc.w	$B1
	dc.w	$A7
	dc.w	$9E
	dc.w	$95
	dc.w	$8D
	dc.w	$85
	dc.w	$7D
	dc.w	$76
	dc.w	$70
	dc.w	$346
	dc.w	$346
	dc.w	$317
	dc.w	$2EA
	dc.w	$2C0
	dc.w	$299
	dc.w	$274
	dc.w	$250
	dc.w	$22F
	dc.w	$210
	dc.w	$1F2
	dc.w	$1D6
	dc.w	$1BC
	dc.w	$1A3
	dc.w	$18B
	dc.w	$175
	dc.w	$160
	dc.w	$14C
	dc.w	$13A
	dc.w	$128
	dc.w	$118
	dc.w	$108
	dc.w	$F9
	dc.w	$EB
	dc.w	$DE
	dc.w	$D1
	dc.w	$C6
	dc.w	$BB
	dc.w	$B0
	dc.w	$A6
	dc.w	$9D
	dc.w	$94
	dc.w	$8C
	dc.w	$84
	dc.w	$7D
	dc.w	$76
	dc.w	$6F
	dc.w	$340
	dc.w	$340
	dc.w	$311
	dc.w	$2E5
	dc.w	$2BB
	dc.w	$294
	dc.w	$26F
	dc.w	$24C
	dc.w	$22B
	dc.w	$20C
	dc.w	$1EF
	dc.w	$1D3
	dc.w	$1B9
	dc.w	$1A0
	dc.w	$188
	dc.w	$172
	dc.w	$15E
	dc.w	$14A
	dc.w	$138
	dc.w	$126
	dc.w	$116
	dc.w	$106
	dc.w	$F7
	dc.w	$E9
	dc.w	$DC
	dc.w	$D0
	dc.w	$C4
	dc.w	$B9
	dc.w	$AF
	dc.w	$A5
	dc.w	$9C
	dc.w	$93
	dc.w	$8B
	dc.w	$83
	dc.w	$7C
	dc.w	$75
	dc.w	$6E
	dc.w	$33A
	dc.w	$33A
	dc.w	$30B
	dc.w	$2E0
	dc.w	$2B6
	dc.w	$28F
	dc.w	$26B
	dc.w	$248
	dc.w	$227
	dc.w	$208
	dc.w	$1EB
	dc.w	$1CF
	dc.w	$1B5
	dc.w	$19D
	dc.w	$186
	dc.w	$170
	dc.w	$15B
	dc.w	$148
	dc.w	$135
	dc.w	$124
	dc.w	$114
	dc.w	$104
	dc.w	$F5
	dc.w	$E8
	dc.w	$DB
	dc.w	$CE
	dc.w	$C3
	dc.w	$B8
	dc.w	$AE
	dc.w	$A4
	dc.w	$9B
	dc.w	$92
	dc.w	$8A
	dc.w	$82
	dc.w	$7B
	dc.w	$74
	dc.w	$6D
	dc.w	$334
	dc.w	$334
	dc.w	$306
	dc.w	$2DA
	dc.w	$2B1
	dc.w	$28B
	dc.w	$266
	dc.w	$244
	dc.w	$223
	dc.w	$204
	dc.w	$1E7
	dc.w	$1CC
	dc.w	$1B2
	dc.w	$19A
	dc.w	$183
	dc.w	$16D
	dc.w	$159
	dc.w	$145
	dc.w	$133
	dc.w	$122
	dc.w	$112
	dc.w	$102
	dc.w	$F4
	dc.w	$E6
	dc.w	$D9
	dc.w	$CD
	dc.w	$C1
	dc.w	$B7
	dc.w	$AC
	dc.w	$A3
	dc.w	$9A
	dc.w	$91
	dc.w	$89
	dc.w	$81
	dc.w	$7A
	dc.w	$73
	dc.w	$6D
	dc.w	$32E
	dc.w	$32E
	dc.w	$300
	dc.w	$2D5
	dc.w	$2AC
	dc.w	$286
	dc.w	$262
	dc.w	$23F
	dc.w	$21F
	dc.w	$201
	dc.w	$1E4
	dc.w	$1C9
	dc.w	$1AF
	dc.w	$197
	dc.w	$180
	dc.w	$16B
	dc.w	$156
	dc.w	$143
	dc.w	$131
	dc.w	$120
	dc.w	$110
	dc.w	$100
	dc.w	$F2
	dc.w	$E4
	dc.w	$D8
	dc.w	$CC
	dc.w	$C0
	dc.w	$B5
	dc.w	$AB
	dc.w	$A1
	dc.w	$98
	dc.w	$90
	dc.w	$88
	dc.w	$80
	dc.w	$79
	dc.w	$72
	dc.w	$6C
	dc.w	$38B
	dc.w	$38B
	dc.w	$358
	dc.w	$328
	dc.w	$2FA
	dc.w	$2D0
	dc.w	$2A6
	dc.w	$280
	dc.w	$25C
	dc.w	$23A
	dc.w	$21A
	dc.w	$1FC
	dc.w	$1E0
	dc.w	$1C5
	dc.w	$1AC
	dc.w	$194
	dc.w	$17D
	dc.w	$168
	dc.w	$153
	dc.w	$140
	dc.w	$12E
	dc.w	$11D
	dc.w	$10D
	dc.w	$FE
	dc.w	$F0
	dc.w	$E2
	dc.w	$D6
	dc.w	$CA
	dc.w	$BE
	dc.w	$B4
	dc.w	$AA
	dc.w	$A0
	dc.w	$97
	dc.w	$8F
	dc.w	$87
	dc.w	$7F
	dc.w	$78
	dc.w	$384
	dc.w	$384
	dc.w	$352
	dc.w	$322
	dc.w	$2F5
	dc.w	$2CB
	dc.w	$2A3
	dc.w	$27C
	dc.w	$259
	dc.w	$237
	dc.w	$217
	dc.w	$1F9
	dc.w	$1DD
	dc.w	$1C2
	dc.w	$1A9
	dc.w	$191
	dc.w	$17B
	dc.w	$165
	dc.w	$151
	dc.w	$13E
	dc.w	$12C
	dc.w	$11C
	dc.w	$10C
	dc.w	$FD
	dc.w	$EE
	dc.w	$E1
	dc.w	$D4
	dc.w	$C8
	dc.w	$BD
	dc.w	$B3
	dc.w	$A9
	dc.w	$9F
	dc.w	$96
	dc.w	$8E
	dc.w	$86
	dc.w	$7E
	dc.w	$77
	dc.w	$37E
	dc.w	$37E
	dc.w	$34C
	dc.w	$31C
	dc.w	$2F0
	dc.w	$2C5
	dc.w	$29E
	dc.w	$278
	dc.w	$255
	dc.w	$233
	dc.w	$214
	dc.w	$1F6
	dc.w	$1DA
	dc.w	$1BF
	dc.w	$1A6
	dc.w	$18E
	dc.w	$178
	dc.w	$163
	dc.w	$14F
	dc.w	$13C
	dc.w	$12A
	dc.w	$11A
	dc.w	$10A
	dc.w	$FB
	dc.w	$ED
	dc.w	$DF
	dc.w	$D3
	dc.w	$C7
	dc.w	$BC
	dc.w	$B1
	dc.w	$A7
	dc.w	$9E
	dc.w	$95
	dc.w	$8D
	dc.w	$85
	dc.w	$7D
	dc.w	$76
	dc.w	$377
	dc.w	$377
	dc.w	$346
	dc.w	$317
	dc.w	$2EA
	dc.w	$2C0
	dc.w	$299
	dc.w	$274
	dc.w	$250
	dc.w	$22F
	dc.w	$210
	dc.w	$1F2
	dc.w	$1D6
	dc.w	$1BC
	dc.w	$1A3
	dc.w	$18B
	dc.w	$175
	dc.w	$160
	dc.w	$14C
	dc.w	$13A
	dc.w	$128
	dc.w	$118
	dc.w	$108
	dc.w	$F9
	dc.w	$EB
	dc.w	$DE
	dc.w	$D1
	dc.w	$C6
	dc.w	$BB
	dc.w	$B0
	dc.w	$A6
	dc.w	$9D
	dc.w	$94
	dc.w	$8C
	dc.w	$84
	dc.w	$7D
	dc.w	$76
	dc.w	$371
	dc.w	$371
	dc.w	$340
	dc.w	$311
	dc.w	$2E5
	dc.w	$2BB
	dc.w	$294
	dc.w	$26F
	dc.w	$24C
	dc.w	$22B
	dc.w	$20C
	dc.w	$1EE
	dc.w	$1D3
	dc.w	$1B9
	dc.w	$1A0
	dc.w	$188
	dc.w	$172
	dc.w	$15E
	dc.w	$14A
	dc.w	$138
	dc.w	$126
	dc.w	$116
	dc.w	$106
	dc.w	$F7
	dc.w	$E9
	dc.w	$DC
	dc.w	$D0
	dc.w	$C4
	dc.w	$B9
	dc.w	$AF
	dc.w	$A5
	dc.w	$9C
	dc.w	$93
	dc.w	$8B
	dc.w	$83
	dc.w	$7B
	dc.w	$75
	dc.w	$36B
	dc.w	$36B
	dc.w	$33A
	dc.w	$30B
	dc.w	$2E0
	dc.w	$2B6
	dc.w	$28F
	dc.w	$26B
	dc.w	$248
	dc.w	$227
	dc.w	$208
	dc.w	$1EB
	dc.w	$1CF
	dc.w	$1B5
	dc.w	$19D
	dc.w	$186
	dc.w	$170
	dc.w	$15B
	dc.w	$148
	dc.w	$135
	dc.w	$124
	dc.w	$114
	dc.w	$104
	dc.w	$F5
	dc.w	$E8
	dc.w	$DB
	dc.w	$CE
	dc.w	$C3
	dc.w	$B8
	dc.w	$AE
	dc.w	$A4
	dc.w	$9B
	dc.w	$92
	dc.w	$8A
	dc.w	$82
	dc.w	$7B
	dc.w	$74
	dc.w	$364
	dc.w	$364
	dc.w	$334
	dc.w	$306
	dc.w	$2DA
	dc.w	$2B1
	dc.w	$28B
	dc.w	$266
	dc.w	$244
	dc.w	$223
	dc.w	$204
	dc.w	$1E7
	dc.w	$1CC
	dc.w	$1B2
	dc.w	$19A
	dc.w	$183
	dc.w	$16D
	dc.w	$159
	dc.w	$145
	dc.w	$133
	dc.w	$122
	dc.w	$112
	dc.w	$102
	dc.w	$F4
	dc.w	$E6
	dc.w	$D9
	dc.w	$CD
	dc.w	$C1
	dc.w	$B7
	dc.w	$AC
	dc.w	$A3
	dc.w	$9A
	dc.w	$91
	dc.w	$89
	dc.w	$81
	dc.w	$7A
	dc.w	$73
	dc.w	$35E
	dc.w	$35E
	dc.w	$32E
	dc.w	$300
	dc.w	$2D5
	dc.w	$2AC
	dc.w	$286
	dc.w	$262
	dc.w	$23F
	dc.w	$21F
	dc.w	$201
	dc.w	$1E4
	dc.w	$1C9
	dc.w	$1AF
	dc.w	$197
	dc.w	$180
	dc.w	$16B
	dc.w	$156
	dc.w	$143
	dc.w	$131
	dc.w	$120
	dc.w	$110
	dc.w	$100
	dc.w	$F2
	dc.w	$E4
	dc.w	$D8
	dc.w	$CB
	dc.w	$C0
	dc.w	$B5
	dc.w	$AB
	dc.w	$A1
	dc.w	$98
	dc.w	$90
	dc.w	$88
	dc.w	$80
	dc.w	$79
	dc.w	$72
	;dc.w	$DFDE	;redundant?

