; Snooker loading program


	jsr	start
	clr.l	d0
	rts

; *Disable system (so that it can be restored later)*
trash	
	move.w intenar,d0
	or.w #$8000,d0
	move.w d0,interrupts
	move.w dmaconr,d0
	or.w #$8000,d0
	move.w d0,dmacontrol
	move.l $6c,lev3irq	;..right, made copies of boring system stuff.
	move.l $68,keybi
	rts


untrash	

	move.l keybi,$68
	move.l lev3irq,$6c
	move.w #$7fff,dmaconw
	move.w #$7fff,intena
	move.w dmacontrol,dmaconw
	move.w interrupts,intena
	move.w #$7fff,intreq

	move.l 4,a6
	lea gfxname,a1
	moveq #0,d0
	jsr -552(a6)	;openoldlibrary
	move.l d0,a0
;	move.l 38(a0),cop1lch

	lea intname,a1
	moveq #0,d0
	move.l 4,a6
	jsr -552(a6)

	move.l d0,a6
	jsr -390(a6)
	rts

gfxname	dc.b "graphics.library",0
intname	dc.b "intuition.library",0
	even
dmacontrol	dc.w 0
interrupts	dc.w 0
lev3irq	dc.l 0
keybi	dc.l 0
oldstack ds.l	1


start		BSR	RESET_COLOR
		MOVE.L	#COLS,PALETTE
		BSR	SET_COLOR

		MOVE.L	#100,WORK_LEN
		BSR	GRAB_MEMORY
		MOVE.L	WORK_SPACE,COPPER


		BSR	LOADUP
	 	jsr	trash

		BSR	SETIRQ			

		BSR	INIT_MUS

LP1		BSR	WAITTOP
		CMP.B	#$44,KEYCODE
		BNE	CNT1
		BSR	MUSIC_ON

CNT1		btst.b	#6,$bfe001
		beq	frp
		CMP.B	#$40,KEYCODE
		BNE	CNT2
frp		BSR	MUSIC_OFF
		MOVE.W	#00,BPL1MOD
		MOVE.W	#00,BPL2MOD

		jsr	untrash
		bsr	free_mem
		BSR	RESET_COLOR
		MOVE.W	#%0100100000000000,BPLCON0	ham 6 bit-planes
		rts
				
CNT2		BRA	LP1



DEADSTOP	rts

		BRA	DEADSTOP


LOADUP		MOVE.L	#148928,WORK_LEN
		MOVE.L	#FILE2,FILENAME
		BSR	LOADER
		MOVE.L	WORK_SPACE,screen
; now set up the screen
		BSR	SET_SCREEN
		BSR	GEN_COPPER
		BSR	ST_COPPER
		move.l	screen,a0
		add.l	#148896,a0
		lea	color0,a1
		move.w	#15,d0
sethamcol	move.w	(a0)+,(a1)+
		dbf	d0,sethamcol
		MOVE.L	#255644+1000,WORK_LEN
		MOVE.L	#FILE1,FILENAME
		BSR	LOADER
		MOVE.L	WORK_SPACE,MUS_SAMPLES

		MOVE.L	WORK_SPACE,A0
		ADD.L	#324640,A0

		MOVE.W	#249,D7
MAKE_SPACE	MOVE.L	#0,(A0)+
		DBF	D7,MAKE_SPACE
	

		RTS

PIC_MEMORY	DC.L	0

free_mem	MOVE.L	MUS_SAMPLES,work_space
		MOVE.L	#255644+1000,WORK_LEN
		bsr	ungrab_memory
		move.l	screen,work_space
		MOVE.L	#148928,WORK_LEN
		bsr	ungrab_memory
		rts


FILE1		DC.B	"CDS.MSK",0
FILE2		DC.B	"steve.raw",0
		Even


;	Set up Screen peramaters
SET_SCREEN	MOVE.W	#%0110101000000100,BPLCON0	ham 6 bit-planes

		MOVE.W	#44,BPL1MOD
		MOVE.W	#44,BPL2MOD

		MOVE.W	#$2041,DIWSTRT			DISP START
		MOVE.W	#$40C1,DIWSTOP			DISP STOP

		MOVE.W	#$0032,DDFSTART			DATA FETCH LO RES
		MOVE.W	#$00Da,DDFSTOP			DATA FETCH LO RES

		
	
		MOVE.W	#%0000000000100000,DMACONW 	CLR DMA
		MOVE.W	#%1000010110000000,DMACONW 	SET DMA	NASTY

		RTS


;	Generate a Copper List.	(Call with copper address in COPPER)

GEN_COPPER	MOVE.L	SCREEN,D0
		MOVE.L	COPPER,A0
		MOVE.W	#$00E0,D1

		MOVE.W	#5,D2			; six planes
DEFBPLP		MOVE.W	D1,(A0)+
		ADDQ.W	#2,D1
		SWAP	D0
		MOVE.W	D0,(A0)+
		MOVE.W	D1,(A0)+
		ADDQ.W	#2,D1
		SWAP D0
		MOVE.W	D0,(A0)+
		ADD.L	#24816,D0		; overscan ham bitplanes
		DBRA	D2,DEFBPLP
;		move.l	#$008a0000,(a0)+		; jump to other list
		
		
		MOVE.W	#$FFFF,(A0)+			Terminate
		MOVE.W	#$FFFE,(A0)+

GEN_COPPER1	MOVE.L	SCREEN,D0
		add.l	#44,d0
		move.l	a0,copper1
		MOVE.W	#$00E0,D1

		MOVE.W	#5,D2			; six planes
DEFBPLP1	MOVE.W	D1,(A0)+
		ADDQ.W	#2,D1
		SWAP	D0
		MOVE.W	D0,(A0)+
		MOVE.W	D1,(A0)+
		ADDQ.W	#2,D1
		SWAP D0
		MOVE.W	D0,(A0)+
		ADD.L	#24816,D0		; overscan ham bitplanes
		DBRA	D2,DEFBPLP1
		
		
		MOVE.W	#$FFFF,(A0)+			Terminate
		MOVE.W	#$FFFE,(A0)+
				
		RTS

;	Start copper list (address in COPPER)

ST_COPPER	MOVE.L	COPPER,COP1LCH
		move.l	copper1,cop1lch
		MOVE.W	COPJMP1,D0
		RTS

copper1		dc.l	0



;	Enable Level II  and level III interupts

SETIRQ		MOVE.W	#%0111111111111111,INTENA	Irq's off
	
		MOVE.L	#INT2,$0068			Level II
		MOVE.L	#VBL,VBLVEC			Level III

		LEA	CIAA,A1				
		MOVE.B	#%00000000,CRA(A1)
		MOVE.B	#%10001000,ICR(A1)
		MOVE.B	#$FF,KEYCODE
		
		MOVE.W	#%1100000000101000,INTENA	Irq's on

		RTS



;	Service Level II interupt for key read

INT2		MOVE.W	#%0000000000001000,INTENA	Level II IRQ'S off
		MOVEM.L	D0-D7/A0-A6,-(SP)

		MOVE.W	INTREQR,D0
		AND.W	#%0000000000001000,D0
		MOVE.W	D0,INTREQ
		LEA	CIAA,A1
		MOVE.B	ICR(A1),D0
		BTST.L	#4,D0
		BNE	INT2X
		BTST.L	#3,D0
		BNE	KEYS


INT2X		MOVEM.L	(SP)+,D0-D7/A0-A6
		MOVE.W	#%0000000000001000,INTREQ	CLR FLAG
		MOVE.W	#%1000000000001000,INTENA	IRQ'S ON
		RTE


KEYS		MOVE.B	SDR(A1),D2
		MOVE.B	#%00000001,SDR(A1)
		MOVE.B	#%01000000,CRA(A1)

		MOVE.B	#$F0,TALO(A1)
		MOVE.B	#$00,TAHI(A1)
		BSET.B	#$00,CRA(A1)

		NOT.B	D2
		ROR.B	#1,D2
		MOVE.B	D2,KEYCODE

KEY1		BTST.B	#0,ICR(A1)
		BEQ	KEY1
		MOVE.B	#%00000000,CRA(A1)
		MOVE.B	#%10001000,ICR(A1)

		BRA	INT2X



;	Level III Interupt Service routine 
			
VBL		MOVE.W	#%0000000000100000,INTENA	Irq's off
		MOVEM.L	D0-D7/A0-A6,-(SP)
		MOVE.W	#$FFFF,RASTOP

; flip the copper lists after the first line (for interlace)

		move.l	copper,cop1lch
		MOVE.W	COPJMP1,D0
vloop		move.w	custom+4,d0
		bmi	vloop
		move.l	copper1,cop1lch
		MOVE.W	COPJMP1,D0
		

;	Return from level III Interupt

RFRI		MOVEM.L	(SP)+,D0-D7/A0-A6		
		MOVE.W	#%0000000000100000,INTREQ	Clr flags
		MOVE.W	#%1000000000100000,INTENA	Irq's on
		RTE



CIAA		EQU	$BFE001
TALO		EQU	$400
TAHI		EQU	$500
SDR		EQU	$C00
ICR		EQU	$D00
CRA		EQU	$E00

KEYCODE		DC.B	$00
		Even


;	Wait for Vertical Flyback

WAITTOP		
		CMP.W	#0,RASTOP
		BEQ	WAITTOP
		MOVE.W	#$0000,RASTOP
		RTS



;	Set up the color pallet	

SET_COLOR	MOVE.W	#15,D7
		LEA	COLOR0,A0
		LEA	COLVAL,A1
		MOVE.L	PALETTE,A2

COL_LP1		MOVE.L	(A2),(A0)+			SET COLOR.S
		MOVE.L	(A2)+,(A1)+
		DBF	D7,COL_LP1
		RTS



:	Reset the color pallet

RESET_COLOR	MOVE.W	#15,D7
		LEA	COLOR0,A0
		LEA	COLVAL,A1

COL_LP2		MOVE.L	#0,(A0)+			BLANK COLOR.S
		MOVE.L	#0,(A1)+
		DBF	D7,COL_LP2
		RTS


COLS		DC.W $0000,$0888,$000C,$0EEE,$0C00,$0E80,$0F00,$006E
		DC.W $0224,$0680,$0EE0,$0446,$00F0,$024E,$0060,$0600
		DC.W $0674,$0263,$000C,$0EEE,$0C00,$0529,$0652,$006E
		DC.W $0224,$0846,$0AB5,$0555,$069F,$024E,$0060,$0FFF


COLVAL		DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
		DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
		DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
		DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000

		EVEN



	








;	Clear The SCREEN in a raster 5Bp Consecutive

CLS		MOVE.L	SCREEN,A1
		MOVE.W	#4,D6

CLRLP2		MOVE.L	A1,A0
		MOVE.L	A0,BLTAPTH
		MOVE.L	#$00000000,(A0)+
		MOVE.L	#$00000000,(A0)+
		MOVE.L	#$00000000,(A0)+
		MOVE.L	#$00000000,(A0)+
		MOVE.L	#$00000000,(A0)+
		MOVE.L	#$00000000,(A0)+
		MOVE.L	#$00000000,(A0)+
		MOVE.L	#$00000000,(A0)+
		MOVE.L	#$00000000,(A0)+
		MOVE.L	#$00000000,(A0)+
		MOVE.L	A0,BLTDPTH

		MOVE.W	#$FFFF,BLTAFWM
		MOVE.W	#$FFFF,BLTALWM

		MOVE.W	#00,BLTAMOD		
		MOVE.W	#00,BLTDMOD		

		MOVE.W	#%0000100111110000,BLTCON0
		MOVE.W	#%0000000000000000,BLTCON1

		MOVE.W	#%11000111010100,BLTSIZE
		BSR	BLITWAIT
		LEA	8000(A1),A1
		DBRA	D6,CLRLP2

		RTS


;	Variables and shit

SCREEN		DC.L	$00000000
COPPER		DC.L	$00000000
PALETTE		DC.L	$00000000

RASTOP		DC.W	$00000000





;	Version 1.2 revised 3/2/88 by Big Dave

;	System routines, variables and macros

		INCDIR	"DF0:INCLUDE/"
		INCLUDE	EXEC/MEMORY.I
		INCLUDE	EXEC/LIBRARIES.I
		INCLUDE	LIBRARIES/DOS.I
		INCLUDE	LIBRARIES/DOS_LIB.I
		INCLUDE	EXEC/EXEC_LIB.I

LOADER		BSR	GRAB_MEMORY
		BEQ	ERROR
		
		MOVE.L	WORK_SPACE,FILE_START

		BSR	OPEN_LIBRARY
		BEQ	ERROR

		BSR	OPEN_FILE		FIND FILE ON DISK
		BEQ	ERROR
		BSR	LOAD_FILE		LOAD IT IN
		BEQ	ERROR

		BSR	CLOSE_FILE	
		BSR	CLOSE_LIBRARY
		RTS


ERROR		ADDQ.W #1,D0
		MOVE.W	D0,COLOR0		cycle colors
		BRA ERROR

OOM		ADD.W	#$100,D0
		MOVE.W	D0,COLOR0
		BRA	OOM

;	Macro drivers

GRAB_MEMORY	MOVE.L	WORK_LEN,D0
		MOVE.L	#MEMF_CHIP,D1	
		CALLEXEC AllocMem
		MOVE.L	D0,WORK_SPACE
		TST.L	D0
		BEQ	OOM

		CMP.L	#$B500,D0
		BLT	GRAB_MEMORY		Do it again !

		RTS


UNGRAB_MEMORY	MOVE.L	WORK_LEN,D0
		MOVE.L	#MEMF_CHIP,D1		????????
		MOVE.L	WORK_SPACE,A1
		CALLEXEC FreeMem
		RTS


OPEN_LIBRARY	MOVE.L	#NEWDOSNAME,A1
		CLR.L   D0
		CALLEXEC OpenLibrary
		MOVE.L	D0,_DOSBase
		TST.L	D0		
		RTS
			
	
CLOSE_LIBRARY	MOVE.L 	_DOSBase,A1
		CALLEXEC CloseLibrary
		RTS


OPEN_FILE	MOVE.L	FILENAME,D1
		MOVE.L	#MODE_OLDFILE,D2	
		CALLDOS	Open
		MOVE.L	D0,FILE_HANDLE
		TST.L	D0
		RTS


OPEN_NEW_FILE	MOVE.L	FILENAME,D1
		MOVE.L	#MODE_NEWFILE,D2	
		CALLDOS	Open
		MOVE.L	D0,FILE_HANDLE
		TST.L	D0
		RTS


CLOSE_FILE	MOVE.L	FILE_HANDLE,D1
		CALLDOS	Close
		RTS


LOAD_FILE	MOVE.L	FILE_HANDLE,D1
		MOVE.L	FILE_START,D2		DESTINATION
		MOVE.L	WORK_LEN,D3		MAX LENGTH
		CALLDOS	Read
		MOVE.L	D0,FILE_LENGTH 		ACTUAL LENGTH
		TST.L	D0
		RTS


SAVE_FILE	MOVE.L	FILE_HANDLE,D1
		MOVE.L	FILE_START,D2		SOURCE
		MOVE.L	FILE_LENGTH,D3		LENGTH
		CALLDOS	Write
		TST.L	D0
		RTS		


BLITWAIT	MOVE.W	DMACONR,D7
		AND.W	#%0100000000000000,D7
		BNE	BLITWAIT
RETURN		RTS




;	Well Fuck me, if it isn't the dos variables
		
FILENAME	DC.L	00000000

WORK_SPACE	DC.L	00000000
WORK_LEN	DC.L	00000000

FILE_LENGTH	DC.L	00000000          
FILE_START	DC.L	00000000
FILE_HANDLE	DC.L	00000000

_DOSBase	DC.L	00000000

NEWDOSNAME	DC.B	"dos.library",0

		EVEN



;	Hardware and custom redgester equates

CUSTOM		EQU $DFF000		Custom base address

COLOR0		EQU CUSTOM+$180
COLOR1		EQU CUSTOM+$182
COLOR2		EQU CUSTOM+$184
COLOR3		EQU CUSTOM+$186
COLOR4		EQU CUSTOM+$188
COLOR5		EQU CUSTOM+$18A
COLOR6		EQU CUSTOM+$18C
COLOR7		EQU CUSTOM+$18E
COLOR8		EQU CUSTOM+$190
COLOR9		EQU CUSTOM+$192
COLOR10		EQU CUSTOM+$194
COLOR11		EQU CUSTOM+$196
COLOR12		EQU CUSTOM+$198
COLOR13		EQU CUSTOM+$19A
COLOR14		EQU CUSTOM+$19C
COLOR15		EQU CUSTOM+$19E
COLOR16		EQU CUSTOM+$1A0
COLOR17		EQU CUSTOM+$1A2
COLOR18		EQU CUSTOM+$1A4
COLOR19		EQU CUSTOM+$1A6
COLOR20		EQU CUSTOM+$1A8
COLOR21		EQU CUSTOM+$1AA
COLOR22		EQU CUSTOM+$1AC
COLOR23		EQU CUSTOM+$1AE
COLOR24		EQU CUSTOM+$1B0
COLOR25		EQU CUSTOM+$1B2
COLOR26		EQU CUSTOM+$1B4
COLOR27		EQU CUSTOM+$1B6
COLOR28		EQU CUSTOM+$1B8
COLOR29		EQU CUSTOM+$1BA
COLOR30		EQU CUSTOM+$1BC
COLOR31		EQU CUSTOM+$1BE


;	Bit plane Varibales

COP1LCH		EQU CUSTOM+$80
COP2LCH		EQU CUSTOM+$84
COPJMP1		EQU CUSTOM+$88
COPJMP2		EQU CUSTOM+$8A
DMACONW		EQU CUSTOM+$96
DMACONR		EQU CUSTOM+$02
BPLCON0		EQU CUSTOM+$100
DDFSTART	EQU CUSTOM+$92
DDFSTOP		EQU CUSTOM+$94
DIWSTRT		EQU CUSTOM+$8E
DIWSTOP		EQU CUSTOM+$90
BPL1MOD		EQU CUSTOM+$108
BPL2MOD		EQU CUSTOM+$10A
BPL1PTH		EQU CUSTOM+$E0
BPL2PTH		EQU CUSTOM+$E4
BPL3PTH		EQU CUSTOM+$E8
BPL4PTH		EQU CUSTOM+$EC
BPL5PTH		EQU CUSTOM+$F0


;	Blitter variables

BLTCON0		EQU CUSTOM+$40
BLTAPTH		EQU CUSTOM+$50
BLTAPTL		EQU CUSTOM+$52
BLTBPTH		EQU CUSTOM+$4C
BLTBPTL		EQU CUSTOM+$4E
BLTCPTH		EQU CUSTOM+$48
BLTCPTL		EQU CUSTOM+$4A
BLTDPTH		EQU CUSTOM+$54
BLTDPTL		EQU CUSTOM+$56
BLTAMOD		EQU CUSTOM+$64
BLTBMOD		EQU CUSTOM+$62
BLTCMOD		EQU CUSTOM+$60
BLTDMOD		EQU CUSTOM+$66
BLTSIZE		EQU CUSTOM+$58
BLTAFWM		EQU CUSTOM+$44
BLTALWM		EQU CUSTOM+$46
BLTCON0		EQU CUSTOM+$40
BLTCON1		EQU CUSTOM+$42
BLTADAT		EQU CUSTOM+$74
BLTBDAT		EQU CUSTOM+$76
BLTCDAT		EQU CUSTOM+$78



;	Irq Variables

VBLVEC		EQU $6C

INTENA		EQU CUSTOM+$9A	
INTREQ		EQU CUSTOM+$9C

INTENAR		EQU CUSTOM+$1C
INTREQR		EQU CUSTOM+$1E


;	Port variables

JOY0DAT		EQU CUSTOM+$0A
JOY1DAT		EQU CUSTOM+$0C

SERPER		EQU CUSTOM+$32
SERDAT		EQU CUSTOM+$30
SERDATR		EQU CUSTOM+$18





;	Sound variables

AUD0LCH		EQU CUSTOM+$0A0
AUD0LEN		EQU CUSTOM+$0A4
AUD0PER		EQU CUSTOM+$0A6
AUD0VOL		EQU CUSTOM+$0A8
AUD0DAT		EQU CUSTOM+$0AA

AUD1LCH		EQU CUSTOM+$0B0
AUD1LEN		EQU CUSTOM+$0B4
AUD1PER		EQU CUSTOM+$0B6
AUD1VOL		EQU CUSTOM+$0B8
AUD1DAT		EQU CUSTOM+$0BA

AUD2LCH		EQU CUSTOM+$0C0
AUD2LEN		EQU CUSTOM+$0C4
AUD2PER		EQU CUSTOM+$0C6
AUD2VOL		EQU CUSTOM+$0C8
AUD2DAT		EQU CUSTOM+$0CA

AUD3LCH		EQU CUSTOM+$0D0
AUD3LEN		EQU CUSTOM+$0D4
AUD3PER		EQU CUSTOM+$0D6
AUD3VOL		EQU CUSTOM+$0D8
AUD3DAT		EQU CUSTOM+$0DA


XSET		EQU %1000000000000000
CLEAR		EQU %0000000000000000
AUD0EN		EQU %0000000000000001
AUD1EN		EQU %0000000000000010
AUD2EN		EQU %0000000000000100
AUD3EN		EQU %0000000000001000
DMAEN		EQU %0000001000000000

START0		EQU XSET+AUD0EN
START1		EQU XSET+AUD1EN
START2		EQU XSET+AUD2EN
START3		EQU XSET+AUD3EN
STOP0		EQU CLEAR+AUD0EN
STOP1		EQU CLEAR+AUD1EN
STOP2		EQU CLEAR+AUD2EN
STOP3		EQU CLEAR+AUD3EN


		Even

 
	



;		INCLUDE	NEWMUSIC.S



;	CDS Music driver by Big Dave (12/9/88)


;	Initialise the sound

INIT_MUS	MOVE.W	#%0000011110000000,INTENA	Irq's off
		MOVE.L	#LEVEL4,$0070			
		MOVE.W	#%1000000010000000,INTENA
		BSR	NEXT_SND		
		RTS

MUSIC_OFF	MOVE.W	#%0000000010000000,INTENA
		MOVE.W	#%0000000010000000,INTREQ
		RTS

MUSIC_ON	MOVE.W	#0,MUS_PTR
		MOVE.W	#%1000000010000000,INTENA
		MOVE.W	#%0000000010000000,INTREQ
		RTS


;	Service level 4 Audio Irq !

LEVEL4		MOVE.W	#%0000011110000000,INTENA	IRQ'S off
		MOVEM.L	A0-A6/D0-D7,-(SP)

		MOVE.W	INTREQR,D0
		BTST	#7,D0
		BEQ	RFLEV4
		BSR	NEXT_SND
		MOVE.W	#%0000000010000000,INTREQ	

RFLEV4		MOVEM.L	(SP)+,A0-A6/D0-D7
		MOVE.W	#%1000000010000000,INTENA	IRQ's on
		RTE


;	Play The Next Music sample on  Chanel 0

NEXT_SND	MOVE.W	#%0000000000000001,DMACONW

		LEA	CDS_MUSTAB,A0
		MOVE.W	MUS_PTR,D0
		LSL.W	#3,D0				* 8
		ADD.W	D0,A0

		MOVE.L	(A0)+,D1			Get Sample offset
		MOVE.L	(A0),D0				Get Length of play
		LSR.L	#1,D0				In words

		MOVE.L	MUS_SAMPLES,A1
		ADD.L	D1,A1				Sample Ptr

		MOVE.W	#358,AUD0PER			Set Sample Rate
		BSR	MUSICDEL

		MOVE.W	D0,AUD0LEN			Set Length
		MOVE.L	A1,AUD0LCH			Set Ptr

		MOVE.W	#40,AUD0VOL			Volume

		MOVE.W	#%1000000000000001,DMACONW	

		BSR	MUSICDEL
		MOVE.L	#QUIET,AUD0LCH			Then scilence			
		MOVE.W	#1,AUD0LEN
		
		ADD.W	#1,MUS_PTR			Next Note
		CMP.W	#MUS_LEN,MUS_PTR
		BNE	RFSS0
		MOVE.W	#0,MUS_PTR			Refresh


RFSS0		RTS

MUSICDEL	MOVE.L	#200,D7
SE0A		NOP				Wait a Bit
		DBF	D7,SE0A	
		RTS


;	Some Variables

MUS_SAMPLES	DC.L	$00000000

MUS_PTR		DC.W	$0000
QUIET		DC.L	$00000000,$00000000


;	Music List

CDS_MUSTAB
		DC.L	DRAG1,DRAGLEN1
		DC.L	DRAG1,DRAGLEN1
		DC.L	DRAG1,DRAGLEN1
		DC.L	DRAG1,DRAGLEN1

		DC.L	DRAG2X,DRAGLEN2X
		DC.L	DRAG3,DRAGLEN3
		DC.L	DRAG2X,DRAGLEN2X

		DC.L	DRAG4,DRAGLEN4
		DC.L	DRAG4,DRAGLEN4
		DC.L	DRAG4,DRAGLEN4
		DC.L	DRAG4,DRAGLEN4
		DC.L	DRAG4,DRAGLEN4
		DC.L	DRAG4,DRAGLEN4

		DC.L	DRAG1,DRAGLEN1
		DC.L	DRAG1,DRAGLEN1
		DC.L	DRAG2X,DRAGLEN2X
	
		DC.L	DRAG4,DRAGLEN4
		DC.L	DRAG4,DRAGLEN4
		DC.L	DRAG4,DRAGLEN4

MUS_END
MUS_LEN		EQU	(MUS_END-CDS_MUSTAB)/8


;	Sample offsets and lengths

;DRAG0		EQU	0
;DRAGLEN0	EQU	44962

DRAG1		EQU	0		;DRAG0+DRAGLEN0
DRAGLEN1	EQU	47432

DRAG2X		EQU	DRAG1+DRAGLEN1
DRAGLEN2X	EQU	90750		;92838

DRAG3		EQU	DRAG2X+DRAGLEN2X
DRAGLEN3	EQU	94046

DRAG4		EQU	DRAG3+DRAGLEN3
DRAGLEN4	EQU	23416

;DRAG5		EQU	DRAG4+DRAGLEN4
;DRAGLEN5	EQU	21946





		END


