
	;old lsd system friendly menu system used on some util disks

	;code by fugative/LSD
	;note from shagratt: this code is a bit dodgey!
	
	Section	Main,Code

	IncDir	"Sys:Include/"
	include	Intuition/intuition.I
	Include	Intuition/Intuition_Lib.I
	Include	Libraries/dos_LIb.i
	Include	Libraries/Dos.i
	Include	Utility/Reqtools.i
	Include	Utility/Reqtools_lib.i
	Include	Exec/Exec_Lib.I
	Include	Exec/Exec.I
	Include	utility/powerpacker_lib.i
	Include	utility/ppbase.i

CALLREQ	Macro
	Move.l	_ReqBase,A6
	Jsr	_LVOrt\1(a6)
	Endm
CALLPP	Macro
	Move.l	_PPBase,A6
	Jsr	_LVO\1(a6)
	Endm


Start

; Open Intuition Library

	Lea	IntName,A1
	Moveq	#0,D0
	CALLEXEC	OpenLibrary
	Move.l	D0,_IntuitionBase
	Beq	Error

; Open Dos Library

	Lea	DosName,A1
	Moveq	#0,D0
	CALLEXEC	OpenLibrary
	Move.l 	D0,_DOSBase
	Beq	CloseInt

;Open reqtools library

	Lea	ReqName,A1
	Moveq	#0,d0
	CALLEXEC	OpenLibrary
	Move.l	D0,_ReqBase
	Beq	CloseDos

; Open Powerpacker library

	Lea	PPName,A1
	Moveq	#0,D0
	CALLEXEC	OpenLibrary
	Move.l	D0,_PPBase
	Beq	CloseReq

	Bsr	InitMenus
	Lea	MainWindow,a0
	CALLINT	OpenWindow
	Move.l	D0,_MyWinBase
	Move.l	D0,A0
	Move.l	wd_RPort(A0),_MyWinRPort
	Move.l	wd_UserPort(a0),_MyWinUserPort
	Lea	Menu1,A1
	CALLINT	SetMenuStrip
	
	Move.l	#RT_REQINFO,D0
	Move.l	ReqBase,A6
	Move.l 	#0,A0
	CALLREQ	AllocRequestA
	Move.l	D0,ReqInfoStructPtr

	Move.l	#RT_FILEREQ,D0
	Move.l	ReqBase,A6
	Move.l	#0,A0
	CALLREQ	AllocRequestA
	Move.l	D0,ReqToolsStructPtr

Main
	Bra	DoAbout
WaitLoop
	Move.l	_MyWinUserPort,A0
	CALLEXEC	WaitPort
	Move.l	_MyWinUserPort,A0
	CALLEXEC	GetMsg
	Move.l	D0,A1
	Move.l	im_Class(A1),D2		;D2=IDCMP Flags Directly
	Move.w	im_Code(A1),D3		;D3=Data ie key why class=Rawkey
	Move.w	im_Qualifier(A1),D4		;D4=things like CTRL SHIFT
	Move.w	im_MouseX(a1),D5		;D5=MouseX Coordinate
	Move.w	im_MouseY(a1),D6		;D5=MouseY Coordinate
	Move.l	im_IAddress(A1),D7		;D7=Addres of Intuition Obj ie Gadget
	Movem.l	D0-D7/A0-A6,-(A7)	
	CALLEXEC	ReplyMsg
	Movem.l	(a7)+,D0-D7/A0-A6
NotKeyBoard
	Cmp.l	#GADGETUP,D2
	Beq	GadgetHandler
	Cmp.l	#MENUPICK,D2
	Beq	MenuHandler
	Bra	WaitLoop
Exit

;Dealocate Requester 

	Move.l	ReqToolsStructPtr,A1
	CALLREQ	FreeRequest	


;Clear Menu Strip 		(Crashes otherwise OH OH!!!)
	Move.l	_MyWinBase,A0
	CALLINT	ClearMenuStrip
	
;Close Window Routine
	Move.l	_MyWinBase,A0
	CALLINT	CloseWindow



ClosePP
	Move.l	_PPBase,A1
	CALLEXEC	CloseLibrary
CloseReq
	Move.l	_ReqBase,A1
	CALLEXEC	CloseLibrary


CloseDos
	Move.l	_DOSBase,A1
	CALLEXEC	CloseLibrary
CloseInt
	Move.l	_IntuitionBase,A1
	CALLEXEC	CloseLibrary
	Moveq	#0,d0
	Rts
Error	Moveq	#1,D0
	Rts





*************************************************************************
**	Various Routines Including all the main ones			*
*************************************************************************
MusicOff
	Btst	#0,Flags
	Beq	WaitLoop
	BSR	mt_end
	BSR	ResetCIAInt
	Bra	WaitLoop

Sleep

	Bra	WaitLoop
InitMenus
	Move.l	#1005,D2		;Access Mode Old (Read)
	Move.l	#FileName,D1
	CALLDOS	Open
	Move.l	D0,_FileHandle
	Beq	.nofile
	Move.l	#5000,D0
	Moveq	#0,D1
	CALLEXEC	AllocMem
	Move.l	D0,_FileBuffer			;Save it for deallocation
	Beq	.closefile		;No Memory
	Move.l	_FileHandle,D1		;File to load
	Move.l	_FileBuffer,D2			;Buffer
	Move.l	#5000,D3		;Length of file
	CALLDOS	Read
	Bsr	ParseFile
.deallocmem
	Move.l	_FileBuffer,A1
	Move.l	#5000,D0
	CALLEXEC	FreeMem
.closefile
	Move.l	_FileHandle,D1
	CALLDOS	Close
.nofile	Rts
ParseFile
	Move.l	_FileBuffer,A0
Parse	Move.b	(a0)+,D0
	Cmp.b	#"*",D0
	Beq	ProcessCommand	
Parsed	Rts
GetNextCommand
	Move.l	(A7)+,A0
.lop	Move.b	(a0)+,D0
	Cmp.b	#"*",D0
	Bne	.lop
	
ProcessCommand
	Move.b	(a0)+,D0
	Lsl.l	#8,D0
	Move.b	(a0)+,D0
	Lsl.l	#8,D0
	Move.b	(a0)+,D0
	Lsl.l	#8,D0
	Move.b	(a0)+,D0
	Move.l	A0,-(a7)
	Cmp.l	#"MOD.",d0
	Beq	StartMusic
	Cmp.l	#"LSD!",D0
	Beq	.out
	Swap	D0
	Cmp.l	#"TX00",D0
	Beq	GadgetText00
	Cmp.l	#"TX01",D0
	Beq	GadgetText01
	Cmp.l	#"TX02",D0
	Beq	GadgetText02
	Cmp.l	#"TX03",D0
	Beq	GadgetText03
	Cmp.l	#"TX04",D0
	Beq	GadgetText04
	Cmp.l	#"TX05",D0
	Beq	GadgetText05
	Cmp.l	#"TX06",D0
	Beq	GadgetText06
	Cmp.l	#"TX07",D0
	Beq	GadgetText07
	Cmp.l	#"TX08",D0
	Beq	GadgetText08
	Cmp.l	#"TX09",D0
	Beq	GadgetText09
	Cmp.l	#"TX10",D0
	Beq	GadgetText10
	Cmp.l	#"TX11",D0
	Beq	GadgetText11
	Cmp.l	#"TX12",D0
	Beq	GadgetText12
	Cmp.l	#"TX13",D0
	Beq	GadgetText13
	Cmp.l	#"TX14",D0
	Beq	GadgetText14
	Cmp.l	#"TX15",D0
	Beq	GadgetText15
	Cmp.l	#"TX16",D0
	Beq	GadgetText16
	Cmp.l	#"TX17",D0
	Beq	GadgetText17
	Cmp.l	#"TX18",D0
	Beq	GadgetText18
	Cmp.l	#"TX19",D0
	Beq	GadgetText19
	Cmp.l	#"TX20",D0
	Beq	GadgetText20
	Cmp.l	#"TX21",D0
	Beq	GadgetText21
	Cmp.l	#"TX22",D0
	Beq	GadgetText22
	Cmp.l	#"TX23",D0
	Beq	GadgetText23
	Cmp.l	#"TX24",D0
	Beq	GadgetText24
	Cmp.l	#"TX25",D0
	Beq	GadgetText25
	Cmp.l	#"TX26",D0
	Beq	GadgetText26
	Cmp.l	#"TX27",D0
	Beq	GadgetText27
	Cmp.l	#"TX28",D0
	Beq	GadgetText28
	Cmp.l	#"TX29",D0
	Beq	GadgetText29
	Cmp.l	#"TX30",D0
	Beq	GadgetText30
	Cmp.l	#"TX31",D0
	Beq	GadgetText31
	Cmp.l	#"TX32",D0
	Beq	GadgetText32
	Cmp.l	#"TX33",D0
	Beq	GadgetText33
	Cmp.l	#"TX34",D0
	Beq	GadgetText34
	Cmp.l	#"TX35",D0
	Beq	GadgetText35
	Cmp.l	#"TX36",D0
	Beq	GadgetText36
	Cmp.l	#"TX37",D0
	Beq	GadgetText37
	Cmp.l	#"TX38",D0
	Beq	GadgetText38
	Cmp.l	#"TX39",D0
	Beq	GadgetText39
	Cmp.l	#"TX40",D0
	Beq	GadgetText40
	Cmp.l	#"TX41",D0
	Beq	GadgetText41




	Cmp.l	#"CM00",D0
	Beq	DoCommand00
	Cmp.l	#"CM01",D0
	Beq	DoCommand01
	Cmp.l	#"CM02",D0
	Beq	DoCommand02
	Cmp.l	#"CM03",D0
	Beq	DoCommand03
	Cmp.l	#"CM04",D0
	Beq	DoCommand04
	Cmp.l	#"CM05",D0
	Beq	DoCommand05
	Cmp.l	#"CM06",D0
	Beq	DoCommand06
	Cmp.l	#"CM07",D0
	Beq	DoCommand07
	Cmp.l	#"CM08",D0
	Beq	DoCommand08
	Cmp.l	#"CM09",D0
	Beq	DoCommand09
	Cmp.l	#"CM10",D0
	Beq	DoCommand10
	Cmp.l	#"CM11",D0
	Beq	DoCommand11
	Cmp.l	#"CM12",D0
	Beq	DoCommand12
	Cmp.l	#"CM13",D0
	Beq	DoCommand13
	Cmp.l	#"CM14",D0
	Beq	DoCommand14
	Cmp.l	#"CM15",D0
	Beq	DoCommand15
	Cmp.l	#"CM16",D0
	Beq	DoCommand16
	Cmp.l	#"CM17",D0
	Beq	DoCommand17
	Cmp.l	#"CM18",D0
	Beq	DoCommand18
	Cmp.l	#"CM19",D0
	Beq	DoCommand19
	Cmp.l	#"CM20",D0
	Beq	DoCommand20
	Cmp.l	#"CM21",D0
	Beq	DoCommand21
	Cmp.l	#"CM22",D0
	Beq	DoCommand22
	Cmp.l	#"CM23",D0
	Beq	DoCommand23
	Cmp.l	#"CM24",D0
	Beq	DoCommand24
	Cmp.l	#"CM25",D0
	Beq	DoCommand25
	Cmp.l	#"CM26",D0
	Beq	DoCommand26
	Cmp.l	#"CM27",D0
	Beq	DoCommand27
	Cmp.l	#"CM28",D0
	Beq	DoCommand28
	Cmp.l	#"CM29",D0
	Beq	DoCommand29
	Cmp.l	#"CM30",D0
	Beq	DoCommand30
	Cmp.l	#"CM31",D0
	Beq	DoCommand31
	Cmp.l	#"CM32",D0
	Beq	DoCommand32
	Cmp.l	#"CM33",D0
	Beq	DoCommand33
	Cmp.l	#"CM34",D0
	Beq	DoCommand34
	Cmp.l	#"CM35",D0
	Beq	DoCommand35
	Cmp.l	#"CM36",D0
	Beq	DoCommand36
	Cmp.l	#"CM37",D0
	Beq	DoCommand37
	Cmp.l	#"CM38",D0
	Beq	DoCommand38
	Cmp.l	#"CM39",D0
	Beq	DoCommand39
	Cmp.l	#"CM40",D0
	Beq	DoCommand40
	Cmp.l	#"CM41",D0
	Beq	DoCommand41
		
	Swap	D0	
.out	Rts
*************************************************************************

DoCommand00
	Lea	1(A0),A0
	Lea	Command00,A1
	Bra	InsertIt
DoCommand01
	Lea	1(A0),A0
	Lea	Command01,A1
	Bra	InsertIt
DoCommand02
	Lea	1(A0),A0
	Lea	Command02,A1
	Bra	InsertIt
DoCommand03
	Lea	1(A0),A0
	Lea	Command03,A1
	Bra	InsertIt
DoCommand04
	Lea	1(A0),A0
	Lea	Command04,A1
	Bra	InsertIt
DoCommand05
	Lea	1(A0),A0
	Lea	Command05,A1
	Bra	InsertIt
DoCommand06
	Lea	1(A0),A0
	Lea	Command06,A1
	Bra	InsertIt
DoCommand07
	Lea	1(A0),A0
	Lea	Command07,A1
	Bra	InsertIt
DoCommand08
	Lea	1(A0),A0
	Lea	Command08,A1
	Bra	InsertIt
DoCommand09
	Lea	1(A0),A0
	Lea	Command09,A1
	Bra	InsertIt
DoCommand10
	Lea	1(A0),A0
	Lea	Command10,A1
	Bra	InsertIt
DoCommand11
	Lea	1(A0),A0
	Lea	Command11,A1
	Bra	InsertIt
DoCommand12
	Lea	1(A0),A0
	Lea	Command12,A1
	Bra	InsertIt
DoCommand13
	Lea	1(A0),A0
	Lea	Command13,A1
	Bra	InsertIt
DoCommand14
	Lea	1(A0),A0
	Lea	Command14,A1
	Bra	InsertIt
DoCommand15
	Lea	1(A0),A0
	Lea	Command15,A1
	Bra	InsertIt
DoCommand16
	Lea	1(A0),A0
	Lea	Command16,A1
	Bra	InsertIt
DoCommand17
	Lea	1(A0),A0
	Lea	Command17,A1
	Bra	InsertIt
DoCommand18
	Lea	1(A0),A0
	Lea	Command18,A1
	Bra	InsertIt
DoCommand19
	Lea	1(A0),A0
	Lea	Command19,A1
	Bra	InsertIt
DoCommand20
	Lea	1(A0),A0
	Lea	Command20,A1
	Bra	InsertIt
DoCommand21
	Lea	1(A0),A0
	Lea	Command21,A1
	Bra	InsertIt
DoCommand22
	Lea	1(A0),A0
	Lea	Command22,A1
	Bra	InsertIt
DoCommand23
	Lea	1(A0),A0
	Lea	Command23,A1
	Bra	InsertIt
DoCommand24
	Lea	1(A0),A0
	Lea	Command24,A1
	Bra	InsertIt
DoCommand25
	Lea	1(A0),A0
	Lea	Command25,A1
	Bra	InsertIt
DoCommand26
	Lea	1(A0),A0
	Lea	Command26,A1
	Bra	InsertIt
DoCommand27
	Lea	1(A0),A0
	Lea	Command27,A1
	Bra	InsertIt
DoCommand28
	Lea	1(A0),A0
	Lea	Command28,A1
	Bra	InsertIt
DoCommand29
	Lea	1(A0),A0
	Lea	Command29,A1
	Bra	InsertIt
DoCommand30
	Lea	1(A0),A0
	Lea	Command30,A1
	Bra	InsertIt
DoCommand31
	Lea	1(A0),A0
	Lea	Command31,A1
	Bra	InsertIt
DoCommand32
	Lea	1(A0),A0
	Lea	Command32,A1
	Bra	InsertIt
DoCommand33
	Lea	1(A0),A0
	Lea	Command33,A1
	Bra	InsertIt
DoCommand34
	Lea	1(A0),A0
	Lea	Command34,A1
	Bra	InsertIt
DoCommand35
	Lea	1(A0),A0
	Lea	Command35,A1
	Bra	InsertIt
DoCommand36
	Lea	1(A0),A0
	Lea	Command36,A1
	Bra	InsertIt
DoCommand37
	Lea	1(A0),A0
	Lea	Command37,A1
	Bra	InsertIt
DoCommand38
	Lea	1(A0),A0
	Lea	Command38,A1
	Bra	InsertIt
DoCommand39
	Lea	1(A0),A0
	Lea	Command39,A1
	Bra	InsertIt
DoCommand40
	Lea	1(A0),A0
	Lea	Command40,A1
	Bra	InsertIt
DoCommand41
	Lea	1(A0),A0
	Lea	Command41,A1
	Bra	InsertIt
*************************************************************************

*************************************************************************

GadgetText00
	Lea	1(A0),A0
	Lea	ITextText1,A1
	Bra	InsertIt
GadgetText01
	Lea	1(A0),A0
	Lea	ITextText2,A1
	Bra	InsertIt
GadgetText02
	Lea	1(A0),A0
	Lea	ITextText3,A1
	Bra	InsertIt
GadgetText03
	Lea	1(A0),A0
	Lea	ITextText4,A1
	Bra	InsertIt
GadgetText04
	Lea	1(A0),A0
	Lea	ITextText5,A1
	Bra	InsertIt
GadgetText05
	Lea	1(A0),A0
	Lea	ITextText6,A1
	Bra	InsertIt
GadgetText06
	Lea	1(A0),A0
	Lea	ITextText7,A1
	Bra	InsertIt
GadgetText07
	Lea	1(A0),A0
	Lea	ITextText8,A1
	Bra	InsertIt
GadgetText08
	Lea	1(A0),A0
	Lea	ITextText9,A1
	Bra	InsertIt
GadgetText09
	Lea	1(A0),A0
	Lea	ITextText10,A1
	Bra	InsertIt
GadgetText10
	Lea	1(A0),A0
	Lea	ITextText11,A1
	Bra	InsertIt
GadgetText11
	Lea	1(A0),A0
	Lea	ITextText12,A1
	Bra	InsertIt
GadgetText12
	Lea	1(A0),A0
	Lea	ITextText13,A1
	Bra	InsertIt
GadgetText13
	Lea	1(A0),A0
	Lea	ITextText14,A1
	Bra	InsertIt
GadgetText14
	Lea	1(A0),A0
	Lea	ITextText15,A1
	Bra	InsertIt
GadgetText15
	Lea	1(A0),A0
	Lea	ITextText16,A1
	Bra	InsertIt
GadgetText16
	Lea	1(A0),A0
	Lea	ITextText17,A1
	Bra	InsertIt
GadgetText17
	Lea	1(A0),A0
	Lea	ITextText18,A1
	Bra	InsertIt
GadgetText18
	Lea	1(A0),A0
	Lea	ITextText19,A1
	Bra	InsertIt
GadgetText19
	Lea	1(A0),A0
	Lea	ITextText20,A1
	Bra	InsertIt
GadgetText20
	Lea	1(A0),A0
	Lea	ITextText21,A1
	Bra	InsertIt
GadgetText21
	Lea	1(A0),A0
	Lea	ITextText22,A1
	Bra	InsertIt
GadgetText22
	Lea	1(A0),A0
	Lea	ITextText23,A1
	Bra	InsertIt
GadgetText23
	Lea	1(A0),A0
	Lea	ITextText24,A1
	Bra	InsertIt
GadgetText24
	Lea	1(A0),A0
	Lea	ITextText25,A1
	Bra	InsertIt
GadgetText25
	Lea	1(A0),A0
	Lea	ITextText26,A1
	Bra	InsertIt
GadgetText26
	Lea	1(A0),A0
	Lea	ITextText27,A1
	Bra	InsertIt
GadgetText27
	Lea	1(A0),A0
	Lea	ITextText28,A1
	Bra	InsertIt
GadgetText28
	Lea	1(A0),A0
	Lea	ITextText29,A1
	Bra	InsertIt
GadgetText29
	Lea	1(A0),A0
	Lea	ITextText30,A1
	Bra	InsertIt
GadgetText30
	Lea	1(A0),A0
	Lea	ITextText31,A1
	Bra	InsertIt
GadgetText31
	Lea	1(A0),A0
	Lea	ITextText32,A1
	Bra	InsertIt
GadgetText32
	Lea	1(A0),A0
	Lea	ITextText33,A1
	Bra	InsertIt
GadgetText33
	Lea	1(A0),A0
	Lea	ITextText34,A1
	Bra	InsertIt
GadgetText34
	Lea	1(A0),A0
	Lea	ITextText35,A1
	Bra	InsertIt
GadgetText35
	Lea	1(A0),A0
	Lea	ITextText36,A1
	Bra	InsertIt
GadgetText36
	Lea	1(A0),A0
	Lea	ITextText37,A1
	Bra	InsertIt
GadgetText37
	Lea	1(A0),A0
	Lea	ITextText38,A1
	Bra	InsertIt
GadgetText38
	Lea	1(A0),A0
	Lea	ITextText39,A1
	Bra	InsertIt
GadgetText39
	Lea	1(A0),A0
	Lea	ITextText40,A1
	Bra	InsertIt
GadgetText40
	Lea	1(A0),A0
	Lea	ITextText41,A1
	Bra	InsertIt
GadgetText41
	Lea	1(A0),A0
	Lea	ITextText42,A1
	Bra	InsertIt

*************************************************************************
InsertIt
	Move.l	a0,-(a7)
.lop	Move.b	(a0)+,D0
	Cmp.b	#$0a,D0		;<CR>
	Beq	.done
	Move.b	D0,(A1)+
	Bra	.lop
.done	Moveq	#0,D0
	Move.b	D0,(A1)+	
	Move.l	(A7)+,A0
	Bra	GetNextCommand
*************************************************************************
StartMusic
	Move.b	(A0)+,D0
	Cmp.b	#"=",D0
	Beq	.ok
	Rts
.ok	Move.l	A0,A1		;Save it
.lop	Move.b	(a1)+,D0	;Get Byte
	Cmp.b	#$0a,D0		;cr
	Bne.s	.lop		;no then loop
	Lea	-1(a1),A1	;point to cr
	Move.b	#0,(a1)		;Null for File Load
	Move.l	#DECR_POINTER,D0
	Moveq	#0,D1
	Lea	_ModDat,A1
	Lea	_ModSize,A2
	Move.l	D1,A3
	Move.l	_PPBase,A6
	Jsr	_LVOppLoadData(A6)
	Tst.l	D0
	Bne	.error
	Bsr	GoMusic
.error	Bra	GetNextCommand
_ModDat		Dc.l	0
_ModSize	Dc.l	0


	Even
DMAWait = 300 ; Set this as low as possible without losing low notes.
GoMusic
	BSR.S	SetCIAInt
	BSR	mt_init
	ST	mt_Enable
	Bset	#0,Flags
	Rts


;---- CIA Interrupt ----

AddICRVector	=   -6
RemICRVector	=  -12
LVOOpenResource	= -498
LVOOpenLibrary 	= -552
LVOCloseLibrary	= -414
LVODelay	= -198

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

SetCIAInt
	MOVEQ	#2,D6
	LEA	$BFD000,A5
	MOVE.B	#'b',CIAAname+3
SetCIALoop
	MOVEQ	#0,D0
	LEA	CIAAname(PC),A1
	MOVE.L	4.W,A6
	JSR	LVOOpenResource(A6)
	MOVE.L	D0,CIAAbase
	BEQ	mt_Return

	LEA	GfxName(PC),A1
	MOVEQ	#0,D0
	JSR	LVOOpenLibrary(A6)
	TST.L	D0
	BEQ	ResetCIAInt
	MOVE.L	D0,A1
	MOVE.W	206(A1),D0	; DisplayFlags
	BTST	#2,D0		; PAL?
	BEQ.S	WasNTSC
	MOVE.L	#1773447,D7 ; PAL
	BRA.S	sciask
WasNTSC	MOVE.L	#1789773,D7 ; NTSC
sciask	MOVE.L	D7,TimerValue
	DIVU	#125,D7 ; Default to normal 50 Hz timer
	CALLEXEC	CloseLibrary

	MOVE.L	CIAAbase(PC),A6
	CMP.W	#2,D6
	BEQ.S	TryTimerA
TryTimerB
	LEA	MusicIntServer(PC),A1
	MOVEQ	#1,D0	; Bit 1: Timer B
	JSR	AddICRVector(A6)
	MOVE.L	#1,TimerFlag
	TST.L	D0
	BNE.S	CIAError
	MOVE.L	A5,CIAAaddr
	MOVE.B	D7,ciatblo(A5)
	LSR.W	#8,D7
	MOVE.B	D7,ciatbhi(A5)
	BSET	#0,ciacrb(A5)
	RTS

TryTimerA
	LEA	MusicIntServer(PC),A1
	MOVEQ	#0,D0	; Bit 0: Timer A
	JSR	AddICRVector(A6)
	CLR.L	TimerFlag
	TST.L	D0
	BNE.S	CIAError
	MOVE.L	A5,CIAAaddr
	MOVE.B	D7,ciatalo(A5)
	LSR.W	#8,D7
	MOVE.B	D7,ciatahi(A5)
	BSET	#0,ciacra(A5)
	RTS

CIAError
	MOVE.B	#'a',CIAAname+3
	LEA	$BFE001,A5
	SUBQ.W	#1,D6
	BNE	SetCIALoop
	CLR.L	CIAAbase
	RTS

ResetCIAInt
	MOVE.L	CIAAbase(PC),D0
	BEQ	mt_Return
	CLR.L	CIAAbase
	MOVE.L	D0,A6
	MOVE.L	CIAAaddr(PC),A5
	TST.L	TimerFlag
	BEQ.S	ResTimerA

	BCLR	#0,ciacrb(A5)
	MOVEQ	#1,D0
	BRA.S	RemInt

ResTimerA
	BCLR	#0,ciacra(A5)
	MOVEQ	#0,D0
RemInt	LEA	MusicIntServer(PC),A1
	MOVEQ	#0,d0
	JSR	RemICRVector(A6)
	RTS

;---- Tempo ----

SetTempo
	MOVE.L	CIAAbase(PC),D2
	BEQ	mt_Return
	CMP.W	#32,D0
	BHS.S	setemsk
	MOVEQ	#32,D0
setemsk	MOVE.W	D0,RealTempo
	MOVE.L	TimerValue(PC),D2
	DIVU	D0,D2
	MOVE.L	CIAAaddr(PC),A4
	MOVE.L	TimerFlag(PC),D0
	BEQ.S	SetTemA
	MOVE.B	D2,ciatblo(A4)
	LSR.W	#8,D2
	MOVE.B	D2,ciatbhi(A4)
	RTS

SetTemA	MOVE.B	D2,ciatalo(A4)
	LSR.W	#8,D2
	MOVE.B	D2,ciatahi(A4)
	RTS

RealTempo	dc.w 125
CIAAaddr	dc.l 0
CIAAname	dc.b "ciaa.resource",0
CIAAbase	dc.l 0
TimerFlag	dc.l 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,mt_music

musintname	dc.b "Protracker MusicInt",0

;---- Playroutine ----

n_note		EQU	0  ; W
n_cmd		EQU	2  ; W
n_cmdlo		EQU	3  ; B
n_start		EQU	4  ; L
n_length	EQU	8  ; W
n_loopstart	EQU	10 ; L
n_replen	EQU	14 ; W
n_period	EQU	16 ; W
n_finetune	EQU	18 ; B
n_volume	EQU	19 ; B
n_dmabit	EQU	20 ; W
n_toneportdirec	EQU	22 ; B
n_toneportspeed	EQU	23 ; B
n_wantedperiod	EQU	24 ; W
n_vibratocmd	EQU	26 ; B
n_vibratopos	EQU	27 ; B
n_tremolocmd	EQU	28 ; B
n_tremolopos	EQU	29 ; B
n_wavecontrol	EQU	30 ; B
n_glissfunk	EQU	31 ; B
n_sampleoffset	EQU	32 ; B
n_pattpos	EQU	33 ; B
n_loopcount	EQU	34 ; B
n_funkoffset	EQU	35 ; B
n_wavestart	EQU	36 ; L
n_reallength	EQU	40 ; W

mt_init	Move.l	_ModDat,A0
	MOVE.L	A0,mt_SongDataPtr
	MOVE.L	A0,A1
	LEA	952(A1),A1
	MOVEQ	#127,D0
	MOVEQ	#0,D1
mtloop	MOVE.L	D1,D2
	SUBQ.W	#1,D0
mtloop2	MOVE.B	(A1)+,D1
	CMP.B	D2,D1
	BGT.S	mtloop
	DBRA	D0,mtloop2
	ADDQ.B	#1,D2
			
	LEA	mt_SampleStarts(PC),A1
	ASL.L	#8,D2
	ASL.L	#2,D2
	ADD.L	#1084,D2
	ADD.L	A0,D2
	MOVE.L	D2,A2
	MOVEQ	#30,D0
mtloop3	CLR.L	(A2)
	MOVE.L	A2,(A1)+
	MOVEQ	#0,D1
	MOVE.W	42(A0),D1
	ASL.L	#1,D1
	ADD.L	D1,A2
	ADD.L	#30,A0
	DBRA	D0,mtloop3

	OR.B	#2,$BFE001
	MOVE.B	#6,mt_speed
	CLR.B	mt_counter
	CLR.B	mt_SongPos
	CLR.W	mt_PatternPos
mt_end	SF	mt_Enable
	LEA	$DFF000,A0
	CLR.W	$A8(A0)
	CLR.W	$B8(A0)
	CLR.W	$C8(A0)
	CLR.W	$D8(A0)
	MOVE.W	#$F,$DFF096
	RTS

mt_music
	MOVEM.L	D0-D4/A0-A6,-(SP)
	TST.B	mt_Enable
	BEQ	mt_exit
	ADDQ.B	#1,mt_counter
	MOVE.B	mt_counter(PC),D0
	CMP.B	mt_speed(PC),D0
	BLO.S	mt_NoNewNote
	CLR.B	mt_counter
	TST.B	mt_PattDelTime2
	BEQ.S	mt_GetNewNote
	BSR.S	mt_NoNewAllChannels
	BRA	mt_dskip

mt_NoNewNote
	BSR.S	mt_NoNewAllChannels
	BRA	mt_NoNewPosYet

mt_NoNewAllChannels
	LEA	$DFF0A0,A5
	LEA	mt_chan1temp(PC),A6
	BSR	mt_CheckEfx
	LEA	$DFF0B0,A5
	LEA	mt_chan2temp(PC),A6
	BSR	mt_CheckEfx
	LEA	$DFF0C0,A5
	LEA	mt_chan3temp(PC),A6
	BSR	mt_CheckEfx
	LEA	$DFF0D0,A5
	LEA	mt_chan4temp(PC),A6
	BRA	mt_CheckEfx

mt_GetNewNote
	MOVE.L	mt_SongDataPtr(PC),A0
	LEA	12(A0),A3
	LEA	952(A0),A2	;pattpo
	LEA	1084(A0),A0	;patterndata
	MOVEQ	#0,D0
	MOVEQ	#0,D1
	MOVE.B	mt_SongPos(PC),D0
	MOVE.B	(A2,D0.W),D1
	ASL.L	#8,D1
	ASL.L	#2,D1
	ADD.W	mt_PatternPos(PC),D1
	CLR.W	mt_DMACONtemp

	LEA	$DFF0A0,A5
	LEA	mt_chan1temp(PC),A6
	BSR.S	mt_PlayVoice
	LEA	$DFF0B0,A5
	LEA	mt_chan2temp(PC),A6
	BSR.S	mt_PlayVoice
	LEA	$DFF0C0,A5
	LEA	mt_chan3temp(PC),A6
	BSR.S	mt_PlayVoice
	LEA	$DFF0D0,A5
	LEA	mt_chan4temp(PC),A6
	BSR.S	mt_PlayVoice
	BRA	mt_SetDMA

mt_PlayVoice
	TST.L	(A6)
	BNE.S	mt_plvskip
	BSR	mt_PerNop
mt_plvskip
	MOVE.L	(A0,D1.L),(A6)
	ADDQ.L	#4,D1
	MOVEQ	#0,D2
	MOVE.B	n_cmd(A6),D2
	AND.B	#$F0,D2
	LSR.B	#4,D2
	MOVE.B	(A6),D0
	AND.B	#$F0,D0
	OR.B	D0,D2
	TST.B	D2
	BEQ	mt_SetRegs
	MOVEQ	#0,D3
	LEA	mt_SampleStarts(PC),A1
	MOVE	D2,D4
	SUBQ.L	#1,D2
	ASL.L	#2,D2
	MULU	#30,D4
	MOVE.L	(A1,D2.L),n_start(A6)
	MOVE.W	(A3,D4.L),n_length(A6)
	MOVE.W	(A3,D4.L),n_reallength(A6)
	MOVE.B	2(A3,D4.L),n_finetune(A6)
	MOVE.B	3(A3,D4.L),n_volume(A6)
	MOVE.W	4(A3,D4.L),D3 ; Get repeat
	TST.W	D3
	BEQ.S	mt_NoLoop
	MOVE.L	n_start(A6),D2	; Get start
	ASL.W	#1,D3
	ADD.L	D3,D2		; Add repeat
	MOVE.L	D2,n_loopstart(A6)
	MOVE.L	D2,n_wavestart(A6)
	MOVE.W	4(A3,D4.L),D0	; Get repeat
	ADD.W	6(A3,D4.L),D0	; Add replen
	MOVE.W	D0,n_length(A6)
	MOVE.W	6(A3,D4.L),n_replen(A6)	; Save replen
	MOVEQ	#0,D0
	MOVE.B	n_volume(A6),D0
	MOVE.W	D0,8(A5)	; Set volume
	BRA.S	mt_SetRegs

mt_NoLoop
	MOVE.L	n_start(A6),D2
	ADD.L	D3,D2
	MOVE.L	D2,n_loopstart(A6)
	MOVE.L	D2,n_wavestart(A6)
	MOVE.W	6(A3,D4.L),n_replen(A6)	; Save replen
	MOVEQ	#0,D0
	MOVE.B	n_volume(A6),D0
	MOVE.W	D0,8(A5)	; Set volume
mt_SetRegs
	MOVE.W	(A6),D0
	AND.W	#$0FFF,D0
	BEQ	mt_CheckMoreEfx	; If no note
	MOVE.W	2(A6),D0
	AND.W	#$0FF0,D0
	CMP.W	#$0E50,D0
	BEQ.S	mt_DoSetFineTune
	MOVE.B	2(A6),D0
	AND.B	#$0F,D0
	CMP.B	#3,D0	; TonePortamento
	BEQ.S	mt_ChkTonePorta
	CMP.B	#5,D0
	BEQ.S	mt_ChkTonePorta
	CMP.B	#9,D0	; Sample Offset
	BNE.S	mt_SetPeriod
	BSR	mt_CheckMoreEfx
	BRA.S	mt_SetPeriod

mt_DoSetFineTune
	BSR	mt_SetFineTune
	BRA.S	mt_SetPeriod

mt_ChkTonePorta
	BSR	mt_SetTonePorta
	BRA	mt_CheckMoreEfx

mt_SetPeriod
	MOVEM.L	D0-D1/A0-A1,-(SP)
	MOVE.W	(A6),D1
	AND.W	#$0FFF,D1
	LEA	mt_PeriodTable(PC),A1
	MOVEQ	#0,D0
	MOVEQ	#36,D2
mt_ftuloop
	CMP.W	(A1,D0.W),D1
	BHS.S	mt_ftufound
	ADDQ.L	#2,D0
	DBRA	D2,mt_ftuloop
mt_ftufound
	MOVEQ	#0,D1
	MOVE.B	n_finetune(A6),D1
	MULU	#36*2,D1
	ADD.L	D1,A1
	MOVE.W	(A1,D0.W),n_period(A6)
	MOVEM.L	(SP)+,D0-D1/A0-A1

	MOVE.W	2(A6),D0
	AND.W	#$0FF0,D0
	CMP.W	#$0ED0,D0 ; Notedelay
	BEQ	mt_CheckMoreEfx

	MOVE.W	n_dmabit(A6),$DFF096
	BTST	#2,n_wavecontrol(A6)
	BNE.S	mt_vibnoc
	CLR.B	n_vibratopos(A6)
mt_vibnoc
	BTST	#6,n_wavecontrol(A6)
	BNE.S	mt_trenoc
	CLR.B	n_tremolopos(A6)
mt_trenoc
	MOVE.L	n_start(A6),(A5)	; Set start
	MOVE.W	n_length(A6),4(A5)	; Set length
	MOVE.W	n_period(A6),D0
	MOVE.W	D0,6(A5)		; Set period
	MOVE.W	n_dmabit(A6),D0
	OR.W	D0,mt_DMACONtemp
	BRA	mt_CheckMoreEfx
 
mt_SetDMA
	MOVE.W	#300,D0
mt_WaitDMA
	DBRA	D0,mt_WaitDMA
	MOVE.W	mt_DMACONtemp(PC),D0
	OR.W	#$8000,D0
	MOVE.W	D0,$DFF096
	MOVE.W	#300,D0
mt_WaitDMA2
	DBRA	D0,mt_WaitDMA2

	LEA	$DFF000,A5
	LEA	mt_chan4temp(PC),A6
	MOVE.L	n_loopstart(A6),$D0(A5)
	MOVE.W	n_replen(A6),$D4(A5)
	LEA	mt_chan3temp(PC),A6
	MOVE.L	n_loopstart(A6),$C0(A5)
	MOVE.W	n_replen(A6),$C4(A5)
	LEA	mt_chan2temp(PC),A6
	MOVE.L	n_loopstart(A6),$B0(A5)
	MOVE.W	n_replen(A6),$B4(A5)
	LEA	mt_chan1temp(PC),A6
	MOVE.L	n_loopstart(A6),$A0(A5)
	MOVE.W	n_replen(A6),$A4(A5)

mt_dskip
	ADD.W	#16,mt_PatternPos
	MOVE.B	mt_PattDelTime,D0
	BEQ.S	mt_dskc
	MOVE.B	D0,mt_PattDelTime2
	CLR.B	mt_PattDelTime
mt_dskc	TST.B	mt_PattDelTime2
	BEQ.S	mt_dska
	SUBQ.B	#1,mt_PattDelTime2
	BEQ.S	mt_dska
	SUB.W	#16,mt_PatternPos
mt_dska	TST.B	mt_PBreakFlag
	BEQ.S	mt_nnpysk
	SF	mt_PBreakFlag
	MOVEQ	#0,D0
	MOVE.B	mt_PBreakPos(PC),D0
	CLR.B	mt_PBreakPos
	LSL.W	#4,D0
	MOVE.W	D0,mt_PatternPos
mt_nnpysk
	CMP.W	#1024,mt_PatternPos
	BLO.S	mt_NoNewPosYet
mt_NextPosition	
	MOVEQ	#0,D0
	MOVE.B	mt_PBreakPos(PC),D0
	LSL.W	#4,D0
	MOVE.W	D0,mt_PatternPos
	CLR.B	mt_PBreakPos
	CLR.B	mt_PosJumpFlag
	ADDQ.B	#1,mt_SongPos
	AND.B	#$7F,mt_SongPos
	MOVE.B	mt_SongPos(PC),D1
	MOVE.L	mt_SongDataPtr(PC),A0
	CMP.B	950(A0),D1
	BLO.S	mt_NoNewPosYet
	CLR.B	mt_SongPos
mt_NoNewPosYet	
	TST.B	mt_PosJumpFlag
	BNE.S	mt_NextPosition
mt_exit	MOVEM.L	(SP)+,D0-D4/A0-A6
	RTS

mt_CheckEfx
	BSR	mt_UpdateFunk
	MOVE.W	n_cmd(A6),D0
	AND.W	#$0FFF,D0
	BEQ.S	mt_PerNop
	MOVE.B	n_cmd(A6),D0
	AND.B	#$0F,D0
	BEQ.S	mt_Arpeggio
	CMP.B	#1,D0
	BEQ	mt_PortaUp
	CMP.B	#2,D0
	BEQ	mt_PortaDown
	CMP.B	#3,D0
	BEQ	mt_TonePortamento
	CMP.B	#4,D0
	BEQ	mt_Vibrato
	CMP.B	#5,D0
	BEQ	mt_TonePlusVolSlide
	CMP.B	#6,D0
	BEQ	mt_VibratoPlusVolSlide
	CMP.B	#$E,D0
	BEQ	mt_E_Commands
SetBack	MOVE.W	n_period(A6),6(A5)
	CMP.B	#7,D0
	BEQ	mt_Tremolo
	CMP.B	#$A,D0
	BEQ	mt_VolumeSlide
mt_Return
	RTS

mt_PerNop
	MOVE.W	n_period(A6),6(A5)
	RTS

mt_Arpeggio
	MOVEQ	#0,D0
	MOVE.B	mt_counter(PC),D0
	DIVS	#3,D0
	SWAP	D0
	CMP.W	#0,D0
	BEQ.S	mt_Arpeggio2
	CMP.W	#2,D0
	BEQ.S	mt_Arpeggio1
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	LSR.B	#4,D0
	BRA.S	mt_Arpeggio3

mt_Arpeggio1
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#15,D0
	BRA.S	mt_Arpeggio3

mt_Arpeggio2
	MOVE.W	n_period(A6),D2
	BRA.S	mt_Arpeggio4

mt_Arpeggio3
	ASL.W	#1,D0
	MOVEQ	#0,D1
	MOVE.B	n_finetune(A6),D1
	MULU	#36*2,D1
	LEA	mt_PeriodTable(PC),A0
	ADD.L	D1,A0
	MOVEQ	#0,D1
	MOVE.W	n_period(A6),D1
	MOVEQ	#36,D3
mt_arploop
	MOVE.W	(A0,D0.W),D2
	CMP.W	(A0),D1
	BHS.S	mt_Arpeggio4
	ADDQ.L	#2,A0
	DBRA	D3,mt_arploop
	RTS

mt_Arpeggio4
	MOVE.W	D2,6(A5)
	RTS

mt_FinePortaUp
	TST.B	mt_counter
	BNE.S	mt_Return
	MOVE.B	#$0F,mt_LowMask
mt_PortaUp
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	AND.B	mt_LowMask(PC),D0
	MOVE.B	#$FF,mt_LowMask
	SUB.W	D0,n_period(A6)
	MOVE.W	n_period(A6),D0
	AND.W	#$0FFF,D0
	CMP.W	#113,D0
	BPL.S	mt_PortaUskip
	AND.W	#$F000,n_period(A6)
	OR.W	#113,n_period(A6)
mt_PortaUskip
	MOVE.W	n_period(A6),D0
	AND.W	#$0FFF,D0
	MOVE.W	D0,6(A5)
	RTS	
 
mt_FinePortaDown
	TST.B	mt_counter
	BNE	mt_Return
	MOVE.B	#$0F,mt_LowMask
mt_PortaDown
	CLR.W	D0
	MOVE.B	n_cmdlo(A6),D0
	AND.B	mt_LowMask(PC),D0
	MOVE.B	#$FF,mt_LowMask
	ADD.W	D0,n_period(A6)
	MOVE.W	n_period(A6),D0
	AND.W	#$0FFF,D0
	CMP.W	#856,D0
	BMI.S	mt_PortaDskip
	AND.W	#$F000,n_period(A6)
	OR.W	#856,n_period(A6)
mt_PortaDskip
	MOVE.W	n_period(A6),D0
	AND.W	#$0FFF,D0
	MOVE.W	D0,6(A5)
	RTS

mt_SetTonePorta
	MOVE.L	A0,-(SP)
	MOVE.W	(A6),D2
	AND.W	#$0FFF,D2
	MOVEQ	#0,D0
	MOVE.B	n_finetune(A6),D0
	MULU	#37*2,D0
	LEA	mt_PeriodTable(PC),A0
	ADD.L	D0,A0
	MOVEQ	#0,D0
mt_StpLoop
	CMP.W	(A0,D0.W),D2
	BHS.S	mt_StpFound
	ADDQ.W	#2,D0
	CMP.W	#37*2,D0
	BLO.S	mt_StpLoop
	MOVEQ	#35*2,D0
mt_StpFound
	MOVE.B	n_finetune(A6),D2
	AND.B	#8,D2
	BEQ.S	mt_StpGoss
	TST.W	D0
	BEQ.S	mt_StpGoss
	SUBQ.W	#2,D0
mt_StpGoss
	MOVE.W	(A0,D0.W),D2
	MOVE.L	(SP)+,A0
	MOVE.W	D2,n_wantedperiod(A6)
	MOVE.W	n_period(A6),D0
	CLR.B	n_toneportdirec(A6)
	CMP.W	D0,D2
	BEQ.S	mt_ClearTonePorta
	BGE	mt_Return
	MOVE.B	#1,n_toneportdirec(A6)
	RTS

mt_ClearTonePorta
	CLR.W	n_wantedperiod(A6)
	RTS

mt_TonePortamento
	MOVE.B	n_cmdlo(A6),D0
	BEQ.S	mt_TonePortNoChange
	MOVE.B	D0,n_toneportspeed(A6)
	CLR.B	n_cmdlo(A6)
mt_TonePortNoChange
	TST.W	n_wantedperiod(A6)
	BEQ	mt_Return
	MOVEQ	#0,D0
	MOVE.B	n_toneportspeed(A6),D0
	TST.B	n_toneportdirec(A6)
	BNE.S	mt_TonePortaUp
mt_TonePortaDown
	ADD.W	D0,n_period(A6)
	MOVE.W	n_wantedperiod(A6),D0
	CMP.W	n_period(A6),D0
	BGT.S	mt_TonePortaSetPer
	MOVE.W	n_wantedperiod(A6),n_period(A6)
	CLR.W	n_wantedperiod(A6)
	BRA.S	mt_TonePortaSetPer

mt_TonePortaUp
	SUB.W	D0,n_period(A6)
	MOVE.W	n_wantedperiod(A6),D0
	CMP.W	n_period(A6),D0
	BLT.S	mt_TonePortaSetPer
	MOVE.W	n_wantedperiod(A6),n_period(A6)
	CLR.W	n_wantedperiod(A6)

mt_TonePortaSetPer
	MOVE.W	n_period(A6),D2
	MOVE.B	n_glissfunk(A6),D0
	AND.B	#$0F,D0
	BEQ.S	mt_GlissSkip
	MOVEQ	#0,D0
	MOVE.B	n_finetune(A6),D0
	MULU	#36*2,D0
	LEA	mt_PeriodTable(PC),A0
	ADD.L	D0,A0
	MOVEQ	#0,D0
mt_GlissLoop
	CMP.W	(A0,D0.W),D2
	BHS.S	mt_GlissFound
	ADDQ.W	#2,D0
	CMP.W	#36*2,D0
	BLO.S	mt_GlissLoop
	MOVEQ	#35*2,D0
mt_GlissFound
	MOVE.W	(A0,D0.W),D2
mt_GlissSkip
	MOVE.W	D2,6(A5) ; Set period
	RTS

mt_Vibrato
	MOVE.B	n_cmdlo(A6),D0
	BEQ.S	mt_Vibrato2
	MOVE.B	n_vibratocmd(A6),D2
	AND.B	#$0F,D0
	BEQ.S	mt_vibskip
	AND.B	#$F0,D2
	OR.B	D0,D2
mt_vibskip
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$F0,D0
	BEQ.S	mt_vibskip2
	AND.B	#$0F,D2
	OR.B	D0,D2
mt_vibskip2
	MOVE.B	D2,n_vibratocmd(A6)
mt_Vibrato2
	MOVE.B	n_vibratopos(A6),D0
	LEA	mt_VibratoTable(PC),A4
	LSR.W	#2,D0
	AND.W	#$001F,D0
	MOVEQ	#0,D2
	MOVE.B	n_wavecontrol(A6),D2
	AND.B	#$03,D2
	BEQ.S	mt_vib_sine
	LSL.B	#3,D0
	CMP.B	#1,D2
	BEQ.S	mt_vib_rampdown
	MOVE.B	#255,D2
	BRA.S	mt_vib_set
mt_vib_rampdown
	TST.B	n_vibratopos(A6)
	BPL.S	mt_vib_rampdown2
	MOVE.B	#255,D2
	SUB.B	D0,D2
	BRA.S	mt_vib_set
mt_vib_rampdown2
	MOVE.B	D0,D2
	BRA.S	mt_vib_set
mt_vib_sine
	MOVE.B	(A4,D0.W),D2
mt_vib_set
	MOVE.B	n_vibratocmd(A6),D0
	AND.W	#15,D0
	MULU	D0,D2
	LSR.W	#7,D2
	MOVE.W	n_period(A6),D0
	TST.B	n_vibratopos(A6)
	BMI.S	mt_VibratoNeg
	ADD.W	D2,D0
	BRA.S	mt_Vibrato3
mt_VibratoNeg
	SUB.W	D2,D0
mt_Vibrato3
	MOVE.W	D0,6(A5)
	MOVE.B	n_vibratocmd(A6),D0
	LSR.W	#2,D0
	AND.W	#$003C,D0
	ADD.B	D0,n_vibratopos(A6)
	RTS

mt_TonePlusVolSlide
	BSR	mt_TonePortNoChange
	BRA	mt_VolumeSlide

mt_VibratoPlusVolSlide
	BSR.S	mt_Vibrato2
	BRA	mt_VolumeSlide

mt_Tremolo
	MOVE.B	n_cmdlo(A6),D0
	BEQ.S	mt_Tremolo2
	MOVE.B	n_tremolocmd(A6),D2
	AND.B	#$0F,D0
	BEQ.S	mt_treskip
	AND.B	#$F0,D2
	OR.B	D0,D2
mt_treskip
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$F0,D0
	BEQ.S	mt_treskip2
	AND.B	#$0F,D2
	OR.B	D0,D2
mt_treskip2
	MOVE.B	D2,n_tremolocmd(A6)
mt_Tremolo2
	MOVE.B	n_tremolopos(A6),D0
	LEA	mt_VibratoTable(PC),A4
	LSR.W	#2,D0
	AND.W	#$001F,D0
	MOVEQ	#0,D2
	MOVE.B	n_wavecontrol(A6),D2
	LSR.B	#4,D2
	AND.B	#$03,D2
	BEQ.S	mt_tre_sine
	LSL.B	#3,D0
	CMP.B	#1,D2
	BEQ.S	mt_tre_rampdown
	MOVE.B	#255,D2
	BRA.S	mt_tre_set
mt_tre_rampdown
	TST.B	n_vibratopos(A6)
	BPL.S	mt_tre_rampdown2
	MOVE.B	#255,D2
	SUB.B	D0,D2
	BRA.S	mt_tre_set
mt_tre_rampdown2
	MOVE.B	D0,D2
	BRA.S	mt_tre_set
mt_tre_sine
	MOVE.B	(A4,D0.W),D2
mt_tre_set
	MOVE.B	n_tremolocmd(A6),D0
	AND.W	#15,D0
	MULU	D0,D2
	LSR.W	#6,D2
	MOVEQ	#0,D0
	MOVE.B	n_volume(A6),D0
	TST.B	n_tremolopos(A6)
	BMI.S	mt_TremoloNeg
	ADD.W	D2,D0
	BRA.S	mt_Tremolo3
mt_TremoloNeg
	SUB.W	D2,D0
mt_Tremolo3
	BPL.S	mt_TremoloSkip
	CLR.W	D0
mt_TremoloSkip
	CMP.W	#$40,D0
	BLS.S	mt_TremoloOk
	MOVE.W	#$40,D0
mt_TremoloOk
	MOVE.W	D0,8(A5)
	MOVE.B	n_tremolocmd(A6),D0
	LSR.W	#2,D0
	AND.W	#$003C,D0
	ADD.B	D0,n_tremolopos(A6)
	RTS

mt_SampleOffset
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	BEQ.S	mt_sononew
	MOVE.B	D0,n_sampleoffset(A6)
mt_sononew
	MOVE.B	n_sampleoffset(A6),D0
	LSL.W	#7,D0
	CMP.W	n_length(A6),D0
	BGE.S	mt_sofskip
	SUB.W	D0,n_length(A6)
	LSL.W	#1,D0
	ADD.L	D0,n_start(A6)
	RTS
mt_sofskip
	MOVE.W	#$0001,n_length(A6)
	RTS

mt_VolumeSlide
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	LSR.B	#4,D0
	TST.B	D0
	BEQ.S	mt_VolSlideDown
mt_VolSlideUp
	ADD.B	D0,n_volume(A6)
	CMP.B	#$40,n_volume(A6)
	BMI.S	mt_vsuskip
	MOVE.B	#$40,n_volume(A6)
mt_vsuskip
	MOVE.B	n_volume(A6),D0
	MOVE.W	D0,8(A5)
	RTS

mt_VolSlideDown
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
mt_VolSlideDown2
	SUB.B	D0,n_volume(A6)
	BPL.S	mt_vsdskip
	CLR.B	n_volume(A6)
mt_vsdskip
	MOVE.B	n_volume(A6),D0
	MOVE.W	D0,8(A5)
	RTS

mt_PositionJump
	MOVE.B	n_cmdlo(A6),D0
	SUBQ.B	#1,D0
	MOVE.B	D0,mt_SongPos
mt_pj2	CLR.B	mt_PBreakPos
	ST 	mt_PosJumpFlag
	RTS

mt_VolumeChange
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	CMP.B	#$40,D0
	BLS.S	mt_VolumeOk
	MOVEQ	#$40,D0
mt_VolumeOk
	MOVE.B	D0,n_volume(A6)
	MOVE.W	D0,8(A5)
	RTS

mt_PatternBreak
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	MOVE.L	D0,D2
	LSR.B	#4,D0
	MULU	#10,D0
	AND.B	#$0F,D2
	ADD.B	D2,D0
	CMP.B	#63,D0
	BHI.S	mt_pj2
	MOVE.B	D0,mt_PBreakPos
	ST	mt_PosJumpFlag
	RTS

mt_SetSpeed
	MOVEQ	#0,D0
	MOVE.B	3(A6),D0
	BEQ	mt_end
	CMP.B	#32,D0
	BHS	SetTempo
	CLR.B	mt_counter
	MOVE.B	D0,mt_speed
	RTS

mt_CheckMoreEfx
	BSR	mt_UpdateFunk
	MOVE.B	2(A6),D0
	AND.B	#$0F,D0
	CMP.B	#$9,D0
	BEQ	mt_SampleOffset
	CMP.B	#$B,D0
	BEQ	mt_PositionJump
	CMP.B	#$D,D0
	BEQ.S	mt_PatternBreak
	CMP.B	#$E,D0
	BEQ.S	mt_E_Commands
	CMP.B	#$F,D0
	BEQ.S	mt_SetSpeed
	CMP.B	#$C,D0
	BEQ	mt_VolumeChange
	BRA	mt_PerNop

mt_E_Commands
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$F0,D0
	LSR.B	#4,D0
	BEQ.S	mt_FilterOnOff
	CMP.B	#1,D0
	BEQ	mt_FinePortaUp
	CMP.B	#2,D0
	BEQ	mt_FinePortaDown
	CMP.B	#3,D0
	BEQ.S	mt_SetGlissControl
	CMP.B	#4,D0
	BEQ	mt_SetVibratoControl
	CMP.B	#5,D0
	BEQ	mt_SetFineTune
	CMP.B	#6,D0
	BEQ	mt_JumpLoop
	CMP.B	#7,D0
	BEQ	mt_SetTremoloControl
	CMP.B	#9,D0
	BEQ	mt_RetrigNote
	CMP.B	#$A,D0
	BEQ	mt_VolumeFineUp
	CMP.B	#$B,D0
	BEQ	mt_VolumeFineDown
	CMP.B	#$C,D0
	BEQ	mt_NoteCut
	CMP.B	#$D,D0
	BEQ	mt_NoteDelay
	CMP.B	#$E,D0
	BEQ	mt_PatternDelay
	CMP.B	#$F,D0
	BEQ	mt_FunkIt
	RTS

mt_FilterOnOff
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#1,D0
	ASL.B	#1,D0
	AND.B	#$FD,$BFE001
	OR.B	D0,$BFE001
	RTS	

mt_SetGlissControl
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
	AND.B	#$F0,n_glissfunk(A6)
	OR.B	D0,n_glissfunk(A6)
	RTS

mt_SetVibratoControl
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
	AND.B	#$F0,n_wavecontrol(A6)
	OR.B	D0,n_wavecontrol(A6)
	RTS

mt_SetFineTune
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
	MOVE.B	D0,n_finetune(A6)
	RTS

mt_JumpLoop
	TST.B	mt_counter
	BNE	mt_Return
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
	BEQ.S	mt_SetLoop
	TST.B	n_loopcount(A6)
	BEQ.S	mt_jumpcnt
	SUBQ.B	#1,n_loopcount(A6)
	BEQ	mt_Return
mt_jmploop	MOVE.B	n_pattpos(A6),mt_PBreakPos
	ST	mt_PBreakFlag
	RTS

mt_jumpcnt
	MOVE.B	D0,n_loopcount(A6)
	BRA.S	mt_jmploop

mt_SetLoop
	MOVE.W	mt_PatternPos(PC),D0
	LSR.W	#4,D0
	MOVE.B	D0,n_pattpos(A6)
	RTS

mt_SetTremoloControl
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
	LSL.B	#4,D0
	AND.B	#$0F,n_wavecontrol(A6)
	OR.B	D0,n_wavecontrol(A6)
	RTS

mt_RetrigNote
	MOVE.L	D1,-(SP)
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
	BEQ.S	mt_rtnend
	MOVEQ	#0,D1
	MOVE.B	mt_counter(PC),D1
	BNE.S	mt_rtnskp
	MOVE.W	(A6),D1
	AND.W	#$0FFF,D1
	BNE.S	mt_rtnend
	MOVEQ	#0,D1
	MOVE.B	mt_counter(PC),D1
mt_rtnskp
	DIVU	D0,D1
	SWAP	D1
	TST.W	D1
	BNE.S	mt_rtnend
mt_DoRetrig
	MOVE.W	n_dmabit(A6),$DFF096	; Channel DMA off
	MOVE.L	n_start(A6),(A5)	; Set sampledata pointer
	MOVE.W	n_length(A6),4(A5)	; Set length
	MOVE.W	#300,D0
mt_rtnloop1
	DBRA	D0,mt_rtnloop1
	MOVE.W	n_dmabit(A6),D0
	BSET	#15,D0
	MOVE.W	D0,$DFF096
	MOVE.W	#300,D0
mt_rtnloop2
	DBRA	D0,mt_rtnloop2
	MOVE.L	n_loopstart(A6),(A5)
	MOVE.L	n_replen(A6),4(A5)
mt_rtnend
	MOVE.L	(SP)+,D1
	RTS

mt_VolumeFineUp
	TST.B	mt_counter
	BNE	mt_Return
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$F,D0
	BRA	mt_VolSlideUp

mt_VolumeFineDown
	TST.B	mt_counter
	BNE	mt_Return
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
	BRA	mt_VolSlideDown2

mt_NoteCut
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
	CMP.B	mt_counter(PC),D0
	BNE	mt_Return
	CLR.B	n_volume(A6)
	MOVE.W	#0,8(A5)
	RTS

mt_NoteDelay
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
	CMP.B	mt_counter,D0
	BNE	mt_Return
	MOVE.W	(A6),D0
	BEQ	mt_Return
	MOVE.L	D1,-(SP)
	BRA	mt_DoRetrig

mt_PatternDelay
	TST.B	mt_counter
	BNE	mt_Return
	MOVEQ	#0,D0
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
	TST.B	mt_PattDelTime2
	BNE	mt_Return
	ADDQ.B	#1,D0
	MOVE.B	D0,mt_PattDelTime
	RTS

mt_FunkIt
	TST.B	mt_counter
	BNE	mt_Return
	MOVE.B	n_cmdlo(A6),D0
	AND.B	#$0F,D0
	LSL.B	#4,D0
	AND.B	#$0F,n_glissfunk(A6)
	OR.B	D0,n_glissfunk(A6)
	TST.B	D0
	BEQ	mt_Return
mt_UpdateFunk
	MOVEM.L	A0/D1,-(SP)
	MOVEQ	#0,D0
	MOVE.B	n_glissfunk(A6),D0
	LSR.B	#4,D0
	BEQ.S	mt_funkend
	LEA	mt_FunkTable(PC),A0
	MOVE.B	(A0,D0.W),D0
	ADD.B	D0,n_funkoffset(A6)
	BTST	#7,n_funkoffset(A6)
	BEQ.S	mt_funkend
	CLR.B	n_funkoffset(A6)

	MOVE.L	n_loopstart(A6),D0
	MOVEQ	#0,D1
	MOVE.W	n_replen(A6),D1
	ADD.L	D1,D0
	ADD.L	D1,D0
	MOVE.L	n_wavestart(A6),A0
	ADDQ.L	#1,A0
	CMP.L	D0,A0
	BLO.S	mt_funkok
	MOVE.L	n_loopstart(A6),A0
mt_funkok
	MOVE.L	A0,n_wavestart(A6)
	MOVEQ	#-1,D0
	SUB.B	(A0),D0
	MOVE.B	D0,(A0)
mt_funkend
	MOVEM.L	(SP)+,A0/D1
	RTS


mt_FunkTable dc.b 0,5,6,7,8,10,11,13,16,19,22,26,32,43,64,128

mt_VibratoTable	
	dc.b   0, 24, 49, 74, 97,120,141,161
	dc.b 180,197,212,224,235,244,250,253
	dc.b 255,253,250,244,235,224,212,197
	dc.b 180,161,141,120, 97, 74, 49, 24

mt_PeriodTable
; Tuning 0, Normal
	dc.w	856,808,762,720,678,640,604,570,538,508,480,453
	dc.w	428,404,381,360,339,320,302,285,269,254,240,226
	dc.w	214,202,190,180,170,160,151,143,135,127,120,113
; Tuning 1
	dc.w	850,802,757,715,674,637,601,567,535,505,477,450
	dc.w	425,401,379,357,337,318,300,284,268,253,239,225
	dc.w	213,201,189,179,169,159,150,142,134,126,119,113
; Tuning 2
	dc.w	844,796,752,709,670,632,597,563,532,502,474,447
	dc.w	422,398,376,355,335,316,298,282,266,251,237,224
	dc.w	211,199,188,177,167,158,149,141,133,125,118,112
; Tuning 3
	dc.w	838,791,746,704,665,628,592,559,528,498,470,444
	dc.w	419,395,373,352,332,314,296,280,264,249,235,222
	dc.w	209,198,187,176,166,157,148,140,132,125,118,111
; Tuning 4
	dc.w	832,785,741,699,660,623,588,555,524,495,467,441
	dc.w	416,392,370,350,330,312,294,278,262,247,233,220
	dc.w	208,196,185,175,165,156,147,139,131,124,117,110
; Tuning 5
	dc.w	826,779,736,694,655,619,584,551,520,491,463,437
	dc.w	413,390,368,347,328,309,292,276,260,245,232,219
	dc.w	206,195,184,174,164,155,146,138,130,123,116,109
; Tuning 6
	dc.w	820,774,730,689,651,614,580,547,516,487,460,434
	dc.w	410,387,365,345,325,307,290,274,258,244,230,217
	dc.w	205,193,183,172,163,154,145,137,129,122,115,109
; Tuning 7
	dc.w	814,768,725,684,646,610,575,543,513,484,457,431
	dc.w	407,384,363,342,323,305,288,272,256,242,228,216
	dc.w	204,192,181,171,161,152,144,136,128,121,114,108
; Tuning -8
	dc.w	907,856,808,762,720,678,640,604,570,538,508,480
	dc.w	453,428,404,381,360,339,320,302,285,269,254,240
	dc.w	226,214,202,190,180,170,160,151,143,135,127,120
; Tuning -7
	dc.w	900,850,802,757,715,675,636,601,567,535,505,477
	dc.w	450,425,401,379,357,337,318,300,284,268,253,238
	dc.w	225,212,200,189,179,169,159,150,142,134,126,119
; Tuning -6
	dc.w	894,844,796,752,709,670,632,597,563,532,502,474
	dc.w	447,422,398,376,355,335,316,298,282,266,251,237
	dc.w	223,211,199,188,177,167,158,149,141,133,125,118
; Tuning -5
	dc.w	887,838,791,746,704,665,628,592,559,528,498,470
	dc.w	444,419,395,373,352,332,314,296,280,264,249,235
	dc.w	222,209,198,187,176,166,157,148,140,132,125,118
; Tuning -4
	dc.w	881,832,785,741,699,660,623,588,555,524,494,467
	dc.w	441,416,392,370,350,330,312,294,278,262,247,233
	dc.w	220,208,196,185,175,165,156,147,139,131,123,117
; Tuning -3
	dc.w	875,826,779,736,694,655,619,584,551,520,491,463
	dc.w	437,413,390,368,347,328,309,292,276,260,245,232
	dc.w	219,206,195,184,174,164,155,146,138,130,123,116
; Tuning -2
	dc.w	868,820,774,730,689,651,614,580,547,516,487,460
	dc.w	434,410,387,365,345,325,307,290,274,258,244,230
	dc.w	217,205,193,183,172,163,154,145,137,129,122,115
; Tuning -1
	dc.w	862,814,768,725,684,646,610,575,543,513,484,457
	dc.w	431,407,384,363,342,323,305,288,272,256,242,228
	dc.w	216,203,192,181,171,161,152,144,136,128,121,114

mt_chan1temp	dc.l	0,0,0,0,0,$00010000,0,  0,0,0,0
mt_chan2temp	dc.l	0,0,0,0,0,$00020000,0,  0,0,0,0
mt_chan3temp	dc.l	0,0,0,0,0,$00040000,0,  0,0,0,0
mt_chan4temp	dc.l	0,0,0,0,0,$00080000,0,  0,0,0,0

mt_SampleStarts	dc.l	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
		dc.l	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

mt_SongDataPtr	dc.l 0
mt_speed	dc.b 6
mt_counter	dc.b 0
mt_SongPos	dc.b 0
mt_PBreakPos	dc.b 0
mt_PosJumpFlag	dc.b 0
mt_PBreakFlag	dc.b 0
mt_LowMask	dc.b 0
mt_PattDelTime	dc.b 0
mt_PattDelTime2	dc.b 0
mt_Enable	dc.b 0
mt_PatternPos	dc.w 0
mt_DMACONtemp	dc.w 0

;/* End of File */


*************************************************************************
*                        I/O Handler Routines				*
*************************************************************************
GadgetHandler
	Move.l	D7,A0
	Move.l	gg_UserData(a0),a0
	jmp	(a0)	
MouseHandler
	Bra	WaitLoop

KeyBoardHandler
	Bra	WaitLoop

MenuHandler
	Move.l	D3,D0		;Save im_Code in D0 (Menu Number)
	Lea	Menu1,a0	;Address of Menu list
	CALLINT	ItemAddress	;Get Address of Item Picked
	Tst.l	D0		;Anything picked
	Beq	WaitLoop	;No!!(why did it go to this routine then ???)
	Move.l	D0,A0		;Address of Menu

* I have put this in so I can make use of multiple selection later
* if i need it (Think ahead now less work later eh!!)

	Move.w	mi_NextSelect(a0),_LastItem	;Save Next user selection
	Move.l	mi_SIZEOF(a0),a0	;Gets first address after menu
					;structure selected
	Jmp	(a0)			;jumps to address of routine 	
	Bra	WaitLoop		;return to IDCMP loop
DoQuit
	Bra	Exit
Flash
	Move.w	#-1,D0
.lop	Move.w	#$000,$dff180
	Dbra	D0,.lop
	Bra	DoQuit


DoAbout
	Move.l	#MEMF_CHIP,D1
	CALLEXEC	AvailMem
	Move.l	D0,FreeChip

	Move.l	#MEMF_FAST,D1
	CALLEXEC	AvailMem
	Move.l	D0,FreeFast

	Moveq	#0,D1
	CALLEXEC	AvailMem
	Move.l	D0,FreeTotal

	
	Lea	AboutText,A1		;Text for body
	Lea	GadgeText,A2		;Reply's
	Lea	AboutArgs,A4			;ArgArray,A3
	Move.l	ReqInfoStructPtr,A3
	Lea	AboutTagList,A0
	move.l	_MyWinBase,ARqWin
	CALLREQ	EZRequestA
	Bra	WaitLoop
AboutText
	Dc.b	"The LSD Utility Menu",10
	Dc.b	"Was Written by Fugitive ",10
	Dc.b	"With Design help from Pazza",10,10
	Dc.b	"Remember the Amiga Trys ",10
	Dc.b	"to make it Impossible",10,10
	Dc.b	"Free Memory",10,10
	Dc.b	"Chip %ld Fast %ld ",10,10
	Dc.b	"Total %ld",0 
	Even
AboutArgs	
FreeChip	Dc.l	0
FreeFast	DC.l	0
FreeTotal	Dc.l	0

	Even
NoWindowErrorText
	Dc.b	"Sorry - There is not enough",10
	Dc.b	"Memory for a New Window",0

GadgeText
	Dc.b	"Ok",0
	Even
ReqTagList
	Dc.l	RT_Window
RqWin	Dc.l	0
	Dc.l	RT_ReqPos
	Dc.l	REQPOS_POINTER
	Dc.l	RT_WaitPointer
	Dc.l	-1
	Dc.l	RTEZ_ReqTitle
	Dc.l	ErrorTitle
	Dc.l	RTEZ_Flags
	DC.l	EZREQF_CENTERTEXT
	DC.l	TAG_END

AboutTagList
	Dc.l	RT_Window
ARqWin	Dc.l	0
	Dc.l	RT_ReqPos
	Dc.l	REQPOS_POINTER
	Dc.l	RT_WaitPointer
	Dc.l	-1
	Dc.l	RTEZ_ReqTitle
	Dc.l	AboutTitle
	Dc.l	RTEZ_Flags
	DC.l	EZREQF_CENTERTEXT
	DC.l	TAG_END
AboutTitle
	Dc.b	"The LSD Utility Menu..",0
	Even

ErrorTitle
	Dc.b	"Error Message",0
	Even

	
ReqName	Dc.b	"reqtools.library",0
	Even
ReqBase	Dc.l	0
ReqToolsStructPtr	Dc.l	0
;***********************************************************************
	Even
_IntuitionBase	Dc.l	0
_DOSBase	Dc.l	0
_ReqBase	Dc.l	0
_PPBase		Dc.l	0
_MyWinBase	Dc.l	0
_GfxBase	Dc.l	0
_MyWinRPort	Dc.l	0
_MyWinUserPort	Dc.l	0
_LastItem	Dc.l	0
_MyWinVPort	Dc.l	0
_FileHandle	Dc.l	0
_FileBuffer
ReqInfoStructPtr	Dc.l	0
PPName		PPNAME
IntName		INTNAME
DosName		DOSNAME
ArpName		Dc.b	"arp.library",0
FileName	Dc.b	"s:LSDMenu.cfg",0
Flags		Dc.b	0
	Even

**************************************************
** 	    ROUTINES TO EXECUTE FILES		**
**************************************************


FUNC1
FUNC2
FUNC3
FUNC4
FUNC5
FUNC6
FUNC7
FUNC8
FUNC9
FUNC10
FUNC11
FUNC12
FUNC13
FUNC14
FUNC15
FUNC16
FUNC17
FUNC18
FUNC19
FUNC20
FUNC21
FUNC22
FUNC23
FUNC24
FUNC25
FUNC26
FUNC27
FUNC28
FUNC29
FUNC30
FUNC31
FUNC32
FUNC33
FUNC34
FUNC35
FUNC36
FUNC37
FUNC38
FUNC39
FUNC40
FUNC41
FUNC42
LSDINFO
	Bra	Exit
**************************************************
**   Data Structure for Menus Window & Gadgets 	**
**************************************************

MainWindow
	dc.w	0,0
	dc.w	640,256
	dc.b	0,1
	dc.l	GADGETUP+MENUVERIFY+MENUPICK
	dc.l	BORDERLESS+ACTIVATE+NOCAREREFRESH
	dc.l	Gadget1
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.w	5,5
	dc.w	-1,-1
	dc.w	WBENCHSCREEN
Gadget1:
	dc.l	Gadget2
	dc.w	3,41
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border1
	dc.l	0
	dc.l	IText1
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC1
Border1:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors1
	dc.l	0
BorderVectors1:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText1:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText1
	dc.l	0
Gadget2:
	dc.l	Gadget3
	dc.w	215,41
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border2
	dc.l	0
	dc.l	IText2
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC2
Border2:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors2
	dc.l	0
BorderVectors2:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText2:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText2
	dc.l	0
Gadget3:
	dc.l	Gadget4
	dc.w	427,41
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border3
	dc.l	0
	dc.l	IText3
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC3
Border3:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors3
	dc.l	0
BorderVectors3:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText3:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText3
	dc.l	0
Gadget4:
	dc.l	Gadget5
	dc.w	3,52
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border4
	dc.l	0
	dc.l	IText4
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC4
Border4:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors4
	dc.l	0
BorderVectors4:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText4:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText4
	dc.l	0
Gadget5:
	dc.l	Gadget6
	dc.w	215,52
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border5
	dc.l	0
	dc.l	IText5
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC5
Border5:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors5
	dc.l	0
BorderVectors5:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText5:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText5
	dc.l	0
Gadget6:
	dc.l	Gadget7
	dc.w	427,52
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border6
	dc.l	0
	dc.l	IText6
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC6
Border6:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors6
	dc.l	0
BorderVectors6:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText6:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText6
	dc.l	0
Gadget7:
	dc.l	Gadget8
	dc.w	3,63
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border7
	dc.l	0
	dc.l	IText7
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC7
Border7:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors7
	dc.l	0
BorderVectors7:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText7:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText7
	dc.l	0
Gadget8:
	dc.l	Gadget9
	dc.w	215,63
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border8
	dc.l	0
	dc.l	IText8
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC8
Border8:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors8
	dc.l	0
BorderVectors8:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText8:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText8
	dc.l	0
Gadget9:
	dc.l	Gadget10
	dc.w	427,63
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border9
	dc.l	0
	dc.l	IText9
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC9
Border9:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors9
	dc.l	0
BorderVectors9:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText9:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText9
	dc.l	0
Gadget10:
	dc.l	Gadget11
	dc.w	3,74
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border10
	dc.l	0
	dc.l	IText10
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC10
Border10:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors10
	dc.l	0
BorderVectors10:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText10:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText10
	dc.l	0
Gadget11:
	dc.l	Gadget12
	dc.w	215,74
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border11
	dc.l	0
	dc.l	IText11
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC11
Border11:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors11
	dc.l	0
BorderVectors11:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText11:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText11
	dc.l	0
Gadget12:
	dc.l	Gadget13
	dc.w	427,74
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border12
	dc.l	0
	dc.l	IText12
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC12
Border12:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors12
	dc.l	0
BorderVectors12:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText12:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText12
	dc.l	0
Gadget13:
	dc.l	Gadget14
	dc.w	3,85
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border13
	dc.l	0
	dc.l	IText13
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC13
Border13:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors13
	dc.l	0
BorderVectors13:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText13:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText13
	dc.l	0
Gadget14:
	dc.l	Gadget15
	dc.w	215,85
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border14
	dc.l	0
	dc.l	IText14
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC14
Border14:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors14
	dc.l	0
BorderVectors14:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText14:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText14
	dc.l	0
Gadget15:
	dc.l	Gadget16
	dc.w	427,85
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border15
	dc.l	0
	dc.l	IText15
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC15
Border15:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors15
	dc.l	0
BorderVectors15:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText15:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText15
	dc.l	0
Gadget16:
	dc.l	Gadget17
	dc.w	3,96
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border16
	dc.l	0
	dc.l	IText16
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC16
Border16:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors16
	dc.l	0
BorderVectors16:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText16:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText16
	dc.l	0
Gadget17:
	dc.l	Gadget18
	dc.w	215,96
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border17
	dc.l	0
	dc.l	IText17
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC17
Border17:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors17
	dc.l	0
BorderVectors17:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText17:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText17
	dc.l	0
Gadget18:
	dc.l	Gadget19
	dc.w	427,96
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border18
	dc.l	0
	dc.l	IText18
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC18
Border18:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors18
	dc.l	0
BorderVectors18:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText18:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText18
	dc.l	0
Gadget19:
	dc.l	Gadget20
	dc.w	3,107
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border19
	dc.l	0
	dc.l	IText19
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC19
Border19:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors19
	dc.l	0
BorderVectors19:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText19:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText19
	dc.l	0
Gadget20:
	dc.l	Gadget21
	dc.w	215,107
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border20
	dc.l	0
	dc.l	IText20
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC20
Border20:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors20
	dc.l	0
BorderVectors20:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText20:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText20
	dc.l	0
Gadget21:
	dc.l	Gadget22
	dc.w	427,107
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border21
	dc.l	0
	dc.l	IText21
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC21
Border21:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors21
	dc.l	0
BorderVectors21:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText21:
	dc.b	3,0,RP_JAM2,0
	dc.w	6,1
	dc.l	0
	dc.l	ITextText21
	dc.l	0
Gadget22:
	dc.l	Gadget23
	dc.w	3,118
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border22
	dc.l	0
	dc.l	IText22
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC22
Border22:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors22
	dc.l	0
BorderVectors22:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText22:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText22
	dc.l	0
Gadget23:
	dc.l	Gadget24
	dc.w	215,118
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border23
	dc.l	0
	dc.l	IText23
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC23
Border23:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors23
	dc.l	0
BorderVectors23:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText23:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText23
	dc.l	0
Gadget24:
	dc.l	Gadget25
	dc.w	427,118
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border24
	dc.l	0
	dc.l	IText24
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC24
Border24:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors24
	dc.l	0
BorderVectors24:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText24:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText24
	dc.l	0
Gadget25:
	dc.l	Gadget26
	dc.w	3,129
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border25
	dc.l	0
	dc.l	IText25
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC25
Border25:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors25
	dc.l	0
BorderVectors25:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText25:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText25
	dc.l	0
Gadget26:
	dc.l	Gadget27
	dc.w	215,129
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border26
	dc.l	0
	dc.l	IText26
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC26
Border26:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors26
	dc.l	0
BorderVectors26:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText26:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText26
	dc.l	0
Gadget27:
	dc.l	Gadget28
	dc.w	427,129
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border27
	dc.l	0
	dc.l	IText27
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC27
Border27:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors27
	dc.l	0
BorderVectors27:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText27:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText27
	dc.l	0
Gadget28:
	dc.l	Gadget29
	dc.w	3,140
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border28
	dc.l	0
	dc.l	IText28
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC28
Border28:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors28
	dc.l	0
BorderVectors28:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText28:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText28
	dc.l	0
Gadget29:
	dc.l	Gadget30
	dc.w	215,140
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border29
	dc.l	0
	dc.l	IText29
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC29
Border29:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors29
	dc.l	0
BorderVectors29:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText29:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText29
	dc.l	0
Gadget30:
	dc.l	Gadget31
	dc.w	427,140
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border30
	dc.l	0
	dc.l	IText30
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC30
Border30:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors30
	dc.l	0
BorderVectors30:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText30:
	dc.b	3,0,RP_JAM2,0
	dc.w	6,1
	dc.l	0
	dc.l	ITextText30
	dc.l	0
Gadget31:
	dc.l	Gadget32
	dc.w	3,151
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border31
	dc.l	0
	dc.l	IText31
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC31
Border31:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors31
	dc.l	0
BorderVectors31:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText31:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText31
	dc.l	0
Gadget32:
	dc.l	Gadget33
	dc.w	215,151
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border32
	dc.l	0
	dc.l	IText32
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC32
Border32:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors32
	dc.l	0
BorderVectors32:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText32:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText32
	dc.l	0
Gadget33:
	dc.l	Gadget34
	dc.w	427,151
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border33
	dc.l	0
	dc.l	IText33
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC33
Border33:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors33
	dc.l	0
BorderVectors33:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText33:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText33
	dc.l	0
Gadget34:
	dc.l	Gadget35
	dc.w	3,162
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border34
	dc.l	0
	dc.l	IText34
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC34
Border34:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors34
	dc.l	0
BorderVectors34:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText34:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText34
	dc.l	0
Gadget35:
	dc.l	Gadget36
	dc.w	215,162
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border35
	dc.l	0
	dc.l	IText35
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC35
Border35:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors35
	dc.l	0
BorderVectors35:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText35:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText35
	dc.l	0
Gadget36:
	dc.l	Gadget37
	dc.w	427,162
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border36
	dc.l	0
	dc.l	IText36
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC36
Border36:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors36
	dc.l	0
BorderVectors36:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText36:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText36
	dc.l	0
Gadget37:
	dc.l	Gadget38
	dc.w	3,173
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border37
	dc.l	0
	dc.l	IText37
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC37
Border37:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors37
	dc.l	0
BorderVectors37:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText37:
	dc.b	3,0,RP_JAM2,0
	dc.w	6,1
	dc.l	0
	dc.l	ITextText37
	dc.l	0
Gadget38:
	dc.l	Gadget39
	dc.w	215,173
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border38
	dc.l	0
	dc.l	IText38
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC38
Border38:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors38
	dc.l	0
BorderVectors38:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText38:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText38
	dc.l	0
Gadget39:
	dc.l	Gadget40
	dc.w	427,173
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border39
	dc.l	0
	dc.l	IText39
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC39
Border39:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors39
	dc.l	0
BorderVectors39:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText39:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText39
	dc.l	0
Gadget40:
	dc.l	Gadget41
	dc.w	3,184
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border40
	dc.l	0
	dc.l	IText40
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC40
Border40:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors40
	dc.l	0
BorderVectors40:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText40:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText40
	dc.l	0
Gadget41:
	dc.l	Gadget42
	dc.w	215,184
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border41
	dc.l	0
	dc.l	IText41
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC41
Border41:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors41
	dc.l	0
BorderVectors41:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText41:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText41
	dc.l	0
Gadget42:
	dc.l	Gadget43
	dc.w	427,184
	dc.w	210,9
	dc.w	0
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Border42
	dc.l	0
	dc.l	IText42
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	FUNC42
Border42:
	dc.w	-1,-1
	dc.b	3,0,RP_JAM1
	dc.b	5
	dc.l	BorderVectors42
	dc.l	0
BorderVectors42:
	dc.w	0,0
	dc.w	211,0
	dc.w	211,10
	dc.w	0,10
	dc.w	0,0
IText42:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,1
	dc.l	0
	dc.l	ITextText42
	dc.l	0
Gadget43:
	dc.l	0
	dc.w	1,1
	dc.w	640,33
	dc.w	GADGHBOX+GADGHIMAGE+GADGIMAGE
	dc.w	RELVERIFY
	dc.w	BOOLGADGET
	dc.l	Image1
	dc.l	0
	dc.l	0
	dc.l	0
	dc.l	0
	dc.w	0
	dc.l	LSDINFO
Image1:
	dc.w	0,0
	dc.w	640,33
	dc.w	2
	dc.l	ImageData1
	dc.b	$0003,$0000
	dc.l	0
MenuList1:
Menu1:
	dc.l	0
	dc.w	0,0
	dc.w	63,0
	dc.w	MENUENABLED
	dc.l	Menu1Name
	dc.l	MenuItem1
	dc.w	0,0,0,0
MenuItem1:
	dc.l	MenuItem2
	dc.w	0,0
	dc.w	72,8
	dc.w	ITEMTEXT+ITEMENABLED+HIGHCOMP
	dc.l	0
	dc.l	IText43
	dc.l	0
	dc.b	0
	dc.b	0
	dc.l	0
	dc.w	0
	Dc.l	MusicOff
IText43:
	dc.b	3,1,RP_COMPLEMENT,0
	dc.w	0,0
	dc.l	0
	dc.l	ITextText43
	dc.l	0
MenuItem2:
	dc.l	MenuItem3
	dc.w	0,8
	dc.w	72,8
	dc.w	ITEMTEXT+ITEMENABLED+HIGHCOMP
	dc.l	0
	dc.l	IText44
	dc.l	0
	dc.b	0
	dc.b	0
	dc.l	0
	dc.w	0
	Dc.l	Sleep
IText44:
	dc.b	3,1,RP_COMPLEMENT,0
	dc.w	0,0
	dc.l	0
	dc.l	ITextText44
	dc.l	0
MenuItem3:
	dc.l	MenuItem4
	dc.w	0,16
	dc.w	72,8
	dc.w	ITEMTEXT+ITEMENABLED+HIGHCOMP
	dc.l	0
	dc.l	IText53
	dc.l	0
	dc.b	0
	dc.b	0
	dc.l	0
	dc.w	0
	Dc.l	DoAbout
IText53:
	dc.b	3,1,RP_COMPLEMENT,0
	dc.w	0,0
	dc.l	0
	dc.l	ITextText53
	dc.l	0
MenuItem4:
	dc.l	0
	dc.w	0,24
	dc.w	72,8
	dc.w	ITEMTEXT+ITEMENABLED+HIGHCOMP
	dc.l	0
	dc.l	IText45
	dc.l	0
	dc.b	0
	dc.b	0
	dc.l	0
	dc.w	0
	Dc.l	Exit
IText45:
	dc.b	3,1,RP_COMPLEMENT,0
	dc.w	0,0
	dc.l	0
	dc.l	ITextText45
	dc.l	0
IntuiTextList1:
IText46:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,196
	dc.l	0
	dc.l	ITextText46
	dc.l	IText47
IText47:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,204
	dc.l	0
	dc.l	ITextText47
	dc.l	IText48
IText48:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,212
	dc.l	0
	dc.l	ITextText48
	dc.l	IText49
IText49:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,220
	dc.l	0
	dc.l	ITextText49
	dc.l	IText50
IText50:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,228
	dc.l	0
	dc.l	ITextText50
	dc.l	IText51
IText51:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,236
	dc.l	0
	dc.l	ITextText51
	dc.l	IText52
IText52:
	dc.b	3,0,RP_JAM2,0
	dc.w	5,244
	dc.l	0
	dc.l	ITextText52
	dc.l	0
******************************************
**  This is the Text list for gadgets	**
******************************************
ITextText1:	Ds.b	24
ITextText2:	Ds.b	24
ITextText3:	Ds.b	24
ITextText4:	Ds.b	24
ITextText5:	Ds.b	24
ITextText6:	Ds.b	24
ITextText7:	Ds.b	24
ITextText8:	Ds.b	24
ITextText9:	Ds.b	24
ITextText10:	Ds.b	24
ITextText11:	Ds.b	24
ITextText12:	Ds.b	24
ITextText13:	Ds.b	24
ITextText14:	Ds.b	24
ITextText15:	Ds.b	24
ITextText16:	Ds.b	24
ITextText17:	Ds.b	24
ITextText18:	Ds.b	24
ITextText19:	Ds.b	24
ITextText20:	Ds.b	24
ITextText21:	Ds.b	24
ITextText22:	Ds.b	24
ITextText23:	Ds.b	24
ITextText24:	Ds.b	24
ITextText25:	Ds.b	24
ITextText26:	Ds.b	24
ITextText27:	Ds.b	24
ITextText28:	Ds.b	24
ITextText29:	Ds.b	24
ITextText30:	Ds.b	24
ITextText31:	Ds.b	24
ITextText32:	Ds.b	24
ITextText33:	Ds.b	24
ITextText34:	Ds.b	24
ITextText35:	Ds.b	24
ITextText36:	Ds.b	24
ITextText37:	Ds.b	24
ITextText38:	Ds.b	24
ITextText39:	Ds.b	24
ITextText40:	Ds.b	24
ITextText41:	Ds.b	24
ITextText42:	Ds.b	24
Command00	Ds.b	60
Command01	Ds.b	60
Command02	Ds.b	60
Command03	Ds.b	60
Command04	Ds.b	60
Command05	Ds.b	60
Command06	Ds.b	60
Command07	Ds.b	60
Command08	Ds.b	60
Command09	Ds.b	60
Command10	Ds.b	60
Command11	Ds.b	60
Command12	Ds.b	60
Command13	Ds.b	60
Command14	Ds.b	60
Command15	Ds.b	60
Command16	Ds.b	60
Command17	Ds.b	60
Command18	Ds.b	60
Command19	Ds.b	60
Command20	Ds.b	60
Command21	Ds.b	60
Command22	Ds.b	60
Command23	Ds.b	60
Command24	Ds.b	60
Command25	Ds.b	60
Command26	Ds.b	60
Command27	Ds.b	60
Command28	Ds.b	60
Command29	Ds.b	60
Command30	Ds.b	60
Command31	Ds.b	60
Command32	Ds.b	60
Command33	Ds.b	60
Command34	Ds.b	60
Command35	Ds.b	60
Command36	Ds.b	60
Command37	Ds.b	60
Command38	Ds.b	60
Command39	Ds.b	60
Command40	Ds.b	60
Command41	Ds.b	60


******************************************
**     This is the Menu Text lists	**
******************************************

ITextText43:	dc.b	'MUSIC OFF',0
Menu1Name:	dc.b	'PROJECT',0
ITextText44:	dc.b	'SLEEP',0
ITextText53:	dc.b	'ABOUT',0
ITextText45:	dc.b	'QUIT',0
******************************************
**  This is The Bottom Text List	**
******************************************

ITextText46:	Ds.b	80
ITextText47:	Ds.b	80
ITextText48:	Ds.b	80
ITextText49:	Ds.b	80
ITextText50:	Ds.b	80
ITextText51:	Ds.b	80
ITextText52:	Ds.b	80

		Section	Gfx,Data_c
ImageData1:
	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
	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
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0030
	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
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0030
	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
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001C,$0000,$1C00,$3000,$0000,$3000,$3000,$1C00
	dc.w	$1C00,$1C0C,$1C00,$1C00,$1C00,$0000,$1C00,$3030
	dc.w	$1C00,$1C00,$001C,$1C00,$1C00,$1C1C,$0000,$1C30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001E,$001F,$FE1E,$1800,$001E,$181E,$181F,$FE1F
	dc.w	$FE1F,$FE06,$1E21,$FE1F,$FE00,$001F,$FE1E,$1818
	dc.w	$1E1F,$FE00,$001E,$1E21,$FE21,$FE1E,$001F,$FE30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001E,$001F,$FE1E,$1C00,$001E,$1C1E,$1C1F,$FE1F
	dc.w	$FE1F,$FE02,$1E01,$FE1F,$FE00,$001F,$FE1E,$1800
	dc.w	$1E1F,$FE00,$001E,$1E01,$FE01,$FE1E,$001F,$FE30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001E,$001E,$001E,$1E00,$001E,$1E1E,$1E1E,$001E
	dc.w	$001E,$0000,$1E01,$E01E,$0000,$001E,$001E,$1800
	dc.w	$1E1E,$0000,$001E,$1E01,$E001,$E01E,$001E,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001E,$001E,$001E,$1E00,$001E,$1E1E,$1E1E,$001E
	dc.w	$001E,$0000,$1E01,$E01E,$0000,$001E,$001E,$1800
	dc.w	$1E1E,$0000,$001E,$1E01,$E001,$E01E,$001E,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001E,$0000,$001E,$1E00,$0000,$3E00,$3E00,$0000
	dc.w	$0000,$0010,$1E01,$E000,$0000,$0000,$001E,$1866
	dc.w	$1E00,$0000,$001E,$1E01,$E001,$E01E,$0000,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001E,$0000,$301E,$1E00,$0000,$7E00,$7E01,$C000
	dc.w	$3001,$C018,$1E01,$E000,$3000,$0000,$301E,$1866
	dc.w	$1E01,$C000,$001E,$1E01,$E001,$E01E,$0000,$3030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001E,$000E,$181E,$1E00,$001F,$FC1E,$1C1F,$E00E
	dc.w	$181F,$E01C,$1E01,$E00E,$1800,$000E,$181E,$187A
	dc.w	$1E1F,$E000,$001E,$1E01,$E001,$E01E,$000E,$1830
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001E,$0006,$1C1E,$1E00,$001F,$F81E,$1C1F,$E006
	dc.w	$1C1F,$E01E,$1E01,$E006,$1C00,$0006,$1C1E,$1878
	dc.w	$1E1F,$E000,$001E,$1E01,$E001,$E01E,$0006,$1C30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001E,$0000,$1E1E,$1E00,$001E,$001E,$1E1E,$0000
	dc.w	$1E1E,$001E,$1E01,$E000,$1E00,$0000,$1E1E,$1878
	dc.w	$1E1E,$0000,$001E,$1E01,$E001,$E01E,$0000,$1E30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001E,$0000,$1E1E,$1E00,$001E,$001E,$1E1E,$0000
	dc.w	$1E1E,$001E,$1E01,$E000,$1E00,$0000,$1E1E,$1878
	dc.w	$1E1E,$0000,$001E,$1E01,$E001,$E01E,$0000,$1E30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$3E00,$3E00,$001E,$001E,$1E00,$0000
	dc.w	$3E00,$001E,$1E01,$E000,$3E00,$0000,$3E00,$3878
	dc.w	$1E00,$0000,$0000,$3E01,$E000,$0000,$0000,$3E30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$1C00,$7E00,$7E00,$001E,$001E,$1E00,$1C00
	dc.w	$7E00,$1C1E,$1E01,$E000,$7E00,$0000,$7E00,$7878
	dc.w	$1E00,$1C00,$0000,$7E01,$E000,$1C00,$1C00,$7E30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$003F,$FE3F,$FC3F,$FC00,$003E,$003E,$3E3F,$FE3F
	dc.w	$FC3F,$FE3E,$3E03,$E03F,$FC00,$003F,$FC0F,$FCF8
	dc.w	$3E3F,$FE00,$000F,$FC03,$E03F,$FE3F,$FE3F,$FC30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$001F,$FE1F,$F81F,$F800,$001E,$001E,$1E1F,$FE1F
	dc.w	$F81F,$FE1E,$1E01,$E01F,$F800,$001F,$F807,$F878
	dc.w	$1E1F,$FE00,$0007,$F801,$E01F,$FE1F,$FE1F,$F830
	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
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0030
	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
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$7FFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFF0
	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
	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
	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
	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
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$1E1E,$3E3F
	dc.w	$3E00,$3E33,$003F,$331E,$3F3F,$3F33,$3F00,$1C00
	dc.w	$3E1E,$3F3F,$1E30,$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,$3333,$3330
	dc.w	$3300,$3333,$0030,$3333,$0C0C,$0C33,$3000,$3600
	dc.w	$3333,$0303,$3330,$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,$3033,$3330
	dc.w	$3300,$3333,$0030,$3330,$0C0C,$0C33,$3000,$3400
	dc.w	$3333,$0606,$3330,$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,$3033,$333C
	dc.w	$3300,$3E1E,$003C,$3337,$0C0C,$0C33,$3C00,$3B00
	dc.w	$3E3F,$0C0C,$3F30,$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,$3033,$3330
	dc.w	$3300,$330C,$0030,$3333,$0C0C,$0C1E,$3000,$6E00
	dc.w	$3033,$1818,$3330,$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,$3333,$3330
	dc.w	$3300,$330C,$0030,$3333,$0C0C,$0C1E,$3000,$6600
	dc.w	$3033,$3030,$3330,$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,$1E1E,$3E3F
	dc.w	$3E00,$3E0C,$0030,$1E1E,$3F0C,$3F0C,$3F00,$3B00
	dc.w	$3033,$3F3F,$3330,$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,$0003,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFF8,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFF0
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$8000,$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,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$8000,$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,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81E0,$007F,$E1FF,$8000,$01FF,$81FF,$81FF,$E07F
	dc.w	$E1FF,$E1E1,$E1FF,$E07F,$E000,$007F,$E07F,$8781
	dc.w	$E1FF,$E000,$01E1,$E1FF,$E1FF,$E1E0,$007F,$E030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FC,$00FF,$FDFF,$F000,$01FF,$F1FF,$F1FF,$FCFF
	dc.w	$FDFF,$FDFD,$FDFF,$FCFF,$FC00,$00FF,$FCFF,$F7F3
	dc.w	$FDFF,$FC00,$01FD,$FDFF,$FDFF,$FDFC,$00FF,$FC30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FC,$01FF,$FDFF,$F800,$01FF,$F9FF,$F9FF,$FDFF
	dc.w	$FDFF,$FDFF,$FC3F,$FDFF,$FC00,$01FF,$FDFF,$FFFF
	dc.w	$FDFF,$FC00,$01FD,$FC3F,$FC3F,$FDFC,$01FF,$FC30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FC,$01FC,$01FD,$FC00,$01FD,$FDFD,$FDFC,$01FC
	dc.w	$01FC,$01FF,$FC1F,$C1FC,$0000,$01FC,$01FD,$FFFF
	dc.w	$FDFC,$0000,$01FD,$FC1F,$C01F,$C1FC,$01FC,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FC,$01FC,$01FD,$FC00,$01FD,$FDFD,$FDFC,$01FC
	dc.w	$01FC,$01FF,$FC1F,$C1FC,$0000,$01FC,$01FD,$FFFF
	dc.w	$FDFC,$0000,$01FD,$FC1F,$C01F,$C1FC,$01FC,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FC,$01FC,$01FD,$FC00,$01FD,$FDFD,$FDFC,$01FC
	dc.w	$01FC,$01FF,$FC1F,$C1FC,$0000,$01FC,$01FD,$FFFF
	dc.w	$FDFC,$0000,$01FD,$FC1F,$C01F,$C1FC,$01FC,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FC,$00FF,$81FD,$FC00,$01FF,$FDFF,$FDFE,$00FF
	dc.w	$81FE,$01FF,$FC1F,$C0FF,$8000,$00FF,$81FD,$FFFF
	dc.w	$FDFE,$0000,$01FD,$FC1F,$C01F,$C1FC,$00FF,$8030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FC,$007F,$F1FD,$FC00,$01FF,$F9FF,$F9FF,$C07F
	dc.w	$F1FF,$C1FF,$FC1F,$C07F,$F000,$007F,$F1FD,$FFFB
	dc.w	$FDFF,$C000,$01FD,$FC1F,$C01F,$C1FC,$007F,$F030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FC,$000F,$F9FD,$FC00,$01FF,$F1FF,$F1FF,$C00F
	dc.w	$F9FF,$C1FF,$FC1F,$C00F,$F800,$000F,$F9FD,$FFF3
	dc.w	$FDFF,$C000,$01FD,$FC1F,$C01F,$C1FC,$000F,$F830
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FC,$0001,$FDFD,$FC00,$01FC,$01FD,$FDFC,$0001
	dc.w	$FDFC,$01FD,$FC1F,$C001,$FC00,$0001,$FDFD,$FFF1
	dc.w	$FDFC,$0000,$01FD,$FC1F,$C01F,$C1FC,$0001,$FC30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FC,$0001,$FDFD,$FC00,$01FC,$01FD,$FDFC,$0001
	dc.w	$FDFC,$01FD,$FC1F,$C001,$FC00,$0001,$FDFD,$FFF1
	dc.w	$FDFC,$0000,$01FD,$FC1F,$C01F,$C1FC,$0001,$FC30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FC,$0001,$FDFD,$FC00,$01FC,$01FD,$FDFC,$0001
	dc.w	$FDFC,$01FD,$FC1F,$C001,$FC00,$0001,$FDFD,$FFF1
	dc.w	$FDFC,$0000,$01FD,$FC1F,$C01F,$C1FC,$0001,$FC30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FF,$E1FF,$FDFF,$FC00,$01FC,$01FD,$FDFF,$E1FF
	dc.w	$FDFF,$E1FD,$FC1F,$C1FF,$FC00,$01FF,$FCFF,$FFF1
	dc.w	$FDFF,$E000,$00FF,$FC1F,$C1FF,$E1FF,$E1FF,$FC30
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$81FF,$FDFF,$F9FF,$F800,$01FC,$01FD,$FDFF,$FDFF
	dc.w	$F9FF,$FDFD,$FC1F,$C1FF,$F800,$01FF,$F87F,$FFF1
	dc.w	$FDFF,$FC00,$007F,$F81F,$C1FF,$FDFF,$FDFF,$F830
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$803F,$FC3F,$F03F,$F000,$003C,$003C,$3C3F,$FC3F
	dc.w	$F03F,$FC3C,$3C03,$C03F,$F000,$003F,$F00F,$F0F0
	dc.w	$3C3F,$FC00,$000F,$F003,$C03F,$FC3F,$FC3F,$F030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$8000,$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,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$8000,$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,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$8000,$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,$0030
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFF0
	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
	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
	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
	dc.w	$0000,$0000,$0000,$0000,$0000,$0003,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFF0,$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,$0003,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0030,$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,$0003,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0030,$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,$0003,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0030,$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,$0003,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0030,$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,$0003,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0030,$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,$0003,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0030,$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,$0003,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0030,$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,$0003,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
	dc.w	$FFFF,$FFFF,$FFF8,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
