********************************************************************
*          Program to demonstrate use of Screens Windows           *
*          Gadgets Menus etc to form a complete program            *
*          shell.Compiles with Devpac V2                           *       
*                          Part Three                              *
*                                                                  *
*                 By S.Marshall for Newsflash UK                   *
*                                                                  *
********************************************************************

	INCDIR	 	"SYS:INCLUDE/"
	INCLUDE 	Intuition/Intuition.i
	INCLUDE 	Intuition/Intuition_lib.i
	INCLUDE		Graphics/Graphics_lib.i
	INCLUDE		Graphics/View.I
 	INCLUDE 	Exec/Exec_lib.i
	INCLUDE		Exec/memory.i
	INCLUDE		Exec/Libraries.i
	INCLUDE		Libraries/Dos.i
	INCLUDE		Libraries/Dos_lib.i
	INCLUDE		Libraries/Dosextens.i
	
NULL	EQU	0

CALLSYS    MACRO
	IFGT	NARG-1         
	FAIL	!!!           
	ENDC                 
	JSR	_LVO\1(A6)
	ENDM
		
;*****************************************

	sub.l		a1,a1			;clear a1
	CALLEXEC	FindTask		;find task - us
	move.l		d0,a4			;process in a4
	move.l		d0,OurProc		;save it for later

	tst.l		pr_CLI(a4)		;test if from CLI
	beq.s		Workbench		;branch if from workbench
	
	bra.s		end_startup		;and run the user prog

Workbench
	lea		pr_MsgPort(a4),a0	;tasks message port in a0
	CALLSYS		WaitPort		;wait for workbench message
	lea		pr_MsgPort(a4),a0	;tasks message port in a0
	CALLSYS		GetMsg			;get workbench message
	move.l		d0,returnMsg		;save it for later reply

end_startup
	bsr.s		_main			;call our program

	tst.l		returnMsg		;test if from workbench
	beq.s		exitToDOS		;if I was a CLI

	CALLEXEC	Forbid			;forbid multitasking
	move.l		returnMsg,a1		;get workbench message
	CALLSYS		ReplyMsg		;reply workbench message

exitToDOS
	moveq		#0,d0			;flag no error
	rts					;Quit our program

_main	
	moveq		#0,d0			;clear d0 (any lib version)
  	lea		DOSname(pc),a1		;lib name ind a1
  	CALLEXEC	OpenLibrary		;try to open library
  	move.l		d0,_DOSBase		;store lib base
  	beq		Error			;cleanup and quit if fail
	  
  	moveq		#0,d0			;clear d0 (any lib version)
  	lea		Grafname(pc),a1		;lib name ind a1
  	CALLSYS		OpenLibrary		;try to open library
  	move.l		d0,_GfxBase		;store lib base
  	beq		GfxError		;cleanup and quit if fail
  	
  	moveq		#0,d0			;clear d0 (any lib version)
  	lea		Intname(pc),a1		;lib name ind a1
  	CALLSYS		OpenLibrary		;try to open library
  	move.l		d0,_IntuitionBase	;store lib base
  	beq		IntError		;cleanup and quit if fail
  	
  	lea 		NewScrn,a0		;NewScreen struct in a0
  	CALLINT 	OpenScreen		;try to open screen
  	move.l 		d0,ScreenPtr		;store screen pointer 
  	beq 		CloseInt		;cleanup and quit if fail
	move.l		d0,a0			;screen pointer in a0
	lea		sc_ViewPort(a0),a0	;screens viewport in a0
	lea		Palette,a1		;Palette address in a1	
	moveq		#8,d0			;number of colours in d0
	CALLGRAF	LoadRGB4		;set screen colours
  	
  	lea 		NewWdw,a0		;NewWindow stuct in a0
  	CALLINT 	OpenWindow		;try to open window
  	move.l 		d0,WindowPtr		;save pointer to window	
  	beq 		ScreenClose		;cleanup and quit if fail

;------ New Code Starts Here !!

	move.l		d0,a0
  	lea 		Menu1,A1
  	CALLSYS 	SetMenuStrip

  	move.l 		WindowPtr,a0
	move.l		wd_RPort(a0),RstPort
	
	move.l		OurProc,a0		;process in a0
	move.l		pr_WindowPtr(a0),OldWdw	;store old pointer
	move.l		WindowPtr,pr_WindowPtr(a0) ;change to our pointer
	
  	lea		ScreenImage,a1		;image struct in a1
  	bsr		Imagedraw		;draw it
  	
  	move.l		WindowPtr,a0		;window in a0
  	lea		Gadget0,a1		;gadget list in a1
  	moveq		#0,d0			;clear d0
  	moveq		#-1,d1			;-1 in d1 (all gadgets)
  	sub.l		a2,a2			;clear a2 (no requester)
  	CALLSYS		AddGList		;Add our list of gadgets
  	
  	lea		Gadget0,a0		;gadget list in a1
  	move.l		WindowPtr,a1		;window in a0
  	moveq		#-1,d0			;-1 in d1 (all gadgets)
  	sub.l		a2,a2			;clear a2 (no requester)
  	CALLSYS		RefreshGList		;refresh the gadgets imagery
  	
	move.l		#255,d7			;index for loop
ScrollScrn
	CALLGRAF	WaitTOF			;use WaitTOF to slow down
	moveq		#0,d0			;not used - set to 0
	move.l		#-1,d1			;amount to move - 1 pixel up
	move.l		ScreenPtr,a0		;pointer to screen to move
	CALLINT		MoveScreen		;move it
	dbra		d7,ScrollScrn		;loop till finished

	move.l		WindowPtr,d0		;window in d0
	bsr		Waitmouse		;wait for let mouse down
	
  	lea		AnalyzerImage,a1	;image struct in a1
  	bsr		Imagedraw		;draw it


	

;------ Temp code to test redirection of requesters and wait for mouse
	
	move.l		WindowPtr,d0		;window in d0
	bsr.s		Waitmouse		;wait for let mouse down
	
	move.l		#flname,d1
	move.l		#MODE_OLDFILE,d2
	CALLDOS		Open

;------ end of temp code

WindowClose
  	move.l 		WindowPtr,a0
  	CALLINT 	ClearMenuStrip
  
  	move.l		OurProc,a0		;process in a0
  	move.l		OldWdw,pr_WindowPtr(a0) ;restore old pointer
  	
  	move.l 		WindowPtr,a0	;window in a0
  	CALLINT 	CloseWindow		;close it
  
ScreenClose
  	move.l 		ScreenPtr,a0		;screen in a0
  	CALLSYS 	CloseScreen		;close it

CloseInt:  
  	move.l 		_IntuitionBase,a1	;intuition lib base in a1
  	CALLEXEC 	CloseLibrary		;close intuition

IntError
	move.l 		_GfxBase,a1		;graphics lib base in a1
  	CALLEXEC 	CloseLibrary		;close graphics
  	
GfxError
	move.l 		_DOSBase,a1		;DOS lib base in a1
  	CALLEXEC 	CloseLibrary		;close DOS
  
Error
	rts					;quit
	
********************************************************************
; Subroutine to wait (legally) for the left mouse button
; Waitmouse  (Window)   (no return value)
;		d0
  	
Waitmouse:
	movem.l		a5-a6,-(sp)		;store a5 and a6
	move.l 		d0,a5			;window address in d0
  	move.l 		wd_UserPort(a5),a5	;userport address in a5
.Loop
  	move.l 		a5,a0			;userport in a0
 	CALLEXEC 	WaitPort		;wait for message
  	move.l 		a5,a0			;userport in a0
  	CALLSYS		GetMsg			;get the message
  	tst 		d0			;test result
  	beq.s 		.Loop 			;try again if fail
  	move.l 		d0,a1			;message in a1
  	cmp.l 		#MOUSEBUTTONS,im_Class(a1) ;is it mousebuttons
	bne.s		.Reply			;if not reply and try again
	cmp.w		#SELECTDOWN,im_Code(a1)	;if yes is it Selectdown
	beq.s		.MBPressed		;if yes reply message and rts
.Reply	
  	CALLSYS		ReplyMsg		;reply to message
  	bra.s 		.Loop			;loop back always
.MBPressed
  	CALLSYS		ReplyMsg		;reply message
	movem.l		(sp)+,a5-a6		;restore a5 and a6
	rts					;return

; Subroutine to render an image into window

Imagedraw:
	move.l		a6,-(sp)	;save a6
	move.l 		WindowPtr,a0	;address of Window in a0
  	move.l 		wd_RPort(a0),a0	;Windows rastport in a0
  	moveq 		#0,D0		;no left offset
  	moveq 		#0,D1		;no top offset
  	CALLINT 	DrawImage	;draw the image
  	move.l		(sp)+,a6	;restore a6
  	rts

;***********************************************************
;	This is the printfat  routine
;***********************************************************
;	Called with     printfat(String,args,Window,XPos,YPos)
;                                  a0    a1    a2    d0   d1
printfat:
	movem.l		a0-a2/a6,-(sp)		;save regs
  	move.l		wd_RPort(a2),a1		;rastport address in a1
	CALLGRAF	Move			;set text position
	movem.l		(sp)+,a0-a2/a6		;restore regs
	bsr.s		printf			;print string
	rts					;and quit
	
;***********************************************************
;	This is the printf routine
;***********************************************************
;	Called with     printf(String,args,Window)
;                                a0    a1    a2

printf:
	movem.l		a2/a6,-(sp)		;save regs a2 and a6
	move.l		a2,a3			;window in a3
	lea		PutChar(pc),a2		;address of output routine
	CALLEXEC	RawDoFmt		;format and print string
	movem.l		(sp)+,a2/a6		;restore a2 and a6
	rts					;and quit
	
PutChar:
	movem.l		a6,-(sp)		;save reg a6
	tst.b		d0			;check character
	beq.s		LastChar		;branch if null
	lea		printfBuffer,a0		;buffer address in a0
	cmpi.b		#'\',(a0)		;was previous char a \
	beq.s		Escape			;yes branch to escape routine
	
	move.b		d0,(a0)			;move character to buffer
	cmpi.b		#'\',d0			;is it a \
	beq.s		LastChar		;if yes skip print routine

NotSupported:
	moveq		#1,d0			;number of chars = 1
	move.l		wd_RPort(a3),a1		;rastport address in a1
	CALLGRAF	Text			;write text
	
LastChar
	move.l		(sp)+,a6		;restore a6
	rts

;===========================================================
Escape:
	cmpi.b		#'n',d0			;is it a newline
	beq.s		Newline			;if yes do it
	
	cmpi.b		#'c',d0			;is it a carraige return
	beq.s		CReturn			;if yes do it
	
	move.b		d0,(a0)			;store char in buffer
	bra.s		NotSupported		;branch back and print it
	
;===========================================================
Newline:
	move.l		d7,-(sp)		;save reg d7
	moveq		#5,d0			;set text x pos
	move.w		wd_Height(a3),d7	;window height in d7
	subq.w		#5,d7			;allow for border
	move.l		wd_RPort(a3),a1		;rastport address in a1
	moveq		#0,d1			;clear d1
	move.w		rp_cp_y(a1),d1		;get current text y pos
	add.w		rp_TxHeight(a1),d1	;get font height
	cmp.w		d1,d7			;are we past window bottom
	bls.s		Scroll			;if yes then scroll window up

ScrollDone:	
	CALLGRAF	Move			;set text position
	move.l		(sp)+,d7		;restore d7 
	bra.s		LastChar		;branch back -don't print 'n'
	
;===========================================================
;------ Note when this routine is called a1 already holds rastport address 
Scroll:
	movem.l		a1/d0-d5,-(sp)		;save regs
	moveq		#0,d0			;no x direction scroll
	move.w		rp_TxHeight(a1),d1	;font size in d1
	moveq		#5,d2			;x start position
	moveq		#10,d3			;y pos (allow for title bar)
	move.w		wd_Width(a3),d4		;get window width
	sub.w		#17,d4			;subtract sizing gadget
	move.l		d7,d5			;window height in d5
	addq.w		#3,d5			;add a little for descenders
	
	CALLGRAF	ScrollRaster		;scroll the window up
	movem.l		(sp)+,a1/d0-d5		;restore regs
	move.l		d7,d1			;reset text position
	bra.s		ScrollDone		;branch back 
	
;===========================================================
CReturn:
	moveq		#5,d0			;set x pos
	moveq		#0,d1			;clear d1
	move.l		wd_RPort(a3),a1		;rastport address in a1
	move.w		rp_cp_y(a1),d1		;get current text y pos
	CALLGRAF	Move			;set text position
	bra		LastChar		;branch back
	

;------ These are dummies just to keep the assembler happy for now

New:
Load:
Save:
Save_As:
Restore:
Delete:
About:
Quit:
Cut:
Copy:
Paste:
Clear:
Play:
Transpose:
Record:
Score:
Instruments:
LoadSong:
LoadMod:
LoadInst:
SaveSong:
SaveMod:
SaveInst:
SaveAsSong:
SaveAsMod:
SaveAsInst:
DoNothing:
	rts

  	
;===============================================================
 
;------	Library Names
 	
DOSname
	DOSNAME			;macro for DOS lib name
Grafname
	GRAFNAME		;macro for Graphics lib name
Intname
	INTNAME			;macro for Intuition lib name

;------ temp filename for testing purposes	
flname:	dc.b	'Test:1',0


;===============================================================
	SECTION	ScreenStuff,DATA
;===============================================================
 
NewScrn 
  	dc.w 		0,256		;X and Y co-ords of top left
  	dc.w 		320,256 	;Size of screen
  	dc.w		4		;Depth (number of bitplanes) 
  	dc.b 		0,1		;colours to use for border etc
  	dc.w 		NULL		;Viewmodes
  	dc.w 		CUSTOMSCREEN	;we are using a custom screen (=15)
  	dc.l 		Font80		;make sure we get the correct font
  	dc.l 		ScreenTitle	;Pointer to screen title
  	dc.l 		NULL		;Gadgets (none yet)
  	dc.l 		NULL		;Custom bitmap (none)
 	EVEN
  
ScreenTitle
	dc.b 		"AmiTracker",0	;Title for main screen
  	EVEN
  	
Font80:	dc.l		FontName	;TextAttr struct for topaz 8
	dc.w		8		;fonts size
	dc.b		0		;font style
	dc.b		0		;font flags
	
FontName:
	dc.b		"topaz.font",0	;name of font
	EVEN  	
    
NewWdw 
  	dc.w 		0,10
  	dc.w 		320,246
  	dc.b 		-1,-1
  	dc.l 		GADGETDOWN|GADGETUP|MOUSEBUTTONS|RAWKEY|MENUPICK
  	dc.l 		SMART_REFRESH|BACKDROP|BORDERLESS|ACTIVATE
  	dc.l 		NULL
  	dc.l 		NULL
  	dc.l 		NULL
ScreenPtr
  	dc.l 		NULL
  	dc.l 		NULL
  	dc.w 		NULL,NULL
  	dc.w 		NULL,NULL
  	dc.w 		CUSTOMSCREEN
  	
;------ Data for palette
Palette:
	dc.w		$000		;col 0
	dc.w		$ccc		;col 1
	dc.w		$444		;col 2
	dc.w		$f00		;col 3
	dc.w		$777		;col 4
	dc.w		$fd0		;col 5
	dc.w		$aaa		;col 6
	dc.w		$666		;col 7
	
;------ Image Structures for display
ScreenImage:

	dc.w 		0,0		;left, top
	dc.w		320,246		;width, height
	dc.w		2		;depth
	dc.l		Image1Data	;image data
	dc.b		6,0		;plane pick,plane on/off
	dc.l		NULL		;next image
	
AnalyzerImage:

	dc.w 		127,47		;left, top
	dc.w		192,52		;width, height
	dc.w		2		;depth
	dc.l		Image2Data	;image data
	dc.b		6,0		;plane pick,plane on/off
	dc.l		NULL		;next image
	

;==================================================================
	SECTION Gadgets,DATA
;==================================================================

Gadget0

	dc.l	Gadget1
	dc.w	101,3,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget0_image		;pointer to primary image
	dc.l	GadgetAlt3_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	0			;gadget ID
	dc.l	NULL
	

Gadget1

	dc.l	Gadget2
	dc.w	114,3,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget1_image		;pointer to primary image
	dc.l	GadgetAlt4_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	1			;gadget ID
	dc.l	NULL


Gadget2

	dc.l	Gadget3
	dc.w	101,14,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget0_image		;pointer to primary image
	dc.l	GadgetAlt3_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	2			;gadget ID
	dc.l	NULL


Gadget3

	dc.l	Gadget4
	dc.w	114,14,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget1_image		;pointer to primary image
	dc.l	GadgetAlt4_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	3			;gadget ID
	dc.l	NULL


Gadget4

	dc.l	Gadget5
	dc.w	101,25,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget0_image		;pointer to primary image
	dc.l	GadgetAlt3_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	4			;gadget ID
	dc.l	NULL

Gadget5

	dc.l	Gadget6
	dc.w	114,25,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget1_image		;pointer to primary image
	dc.l	GadgetAlt4_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	5			;gadget ID
	dc.l	NULL


Gadget6

	dc.l	Gadget7
	dc.w	101,36,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget0_image		;pointer to primary image
	dc.l	GadgetAlt3_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	6			;gadget ID
	dc.l	NULL


Gadget7

	dc.l	Gadget8
	dc.w	114,36,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget1_image		;pointer to primary image
	dc.l	GadgetAlt4_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	7			;gadget ID
	dc.l	NULL


Gadget8

	dc.l	Gadget9
	dc.w	101,47,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget0_image		;pointer to primary image
	dc.l	GadgetAlt3_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	9			;gadget ID
	dc.l	NULL


Gadget9

	dc.l	Gadget10
	dc.w	114,47,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget1_image		;pointer to primary image
	dc.l	GadgetAlt4_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	9			;gadget ID
	dc.l	NULL


Gadget10

	dc.l	Gadget11
	dc.w	101,58,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget0_image		;pointer to primary image
	dc.l	GadgetAlt3_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	10			;gadget ID
	dc.l	NULL


Gadget11

	dc.l	Gadget12
	dc.w	114,58,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget1_image		;pointer to primary image
	dc.l	GadgetAlt4_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	11			;gadget ID
	dc.l	NULL


Gadget12

	dc.l	Gadget13
	dc.w	101,69,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget0_image		;pointer to primary image
	dc.l	GadgetAlt3_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	12			;gadget ID
	dc.l	NULL


Gadget13

	dc.l	Gadget14
	dc.w	114,69,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget1_image		;pointer to primary image
	dc.l	GadgetAlt4_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	13			;gadget ID
	dc.l	NULL


Gadget14

	dc.l	Gadget15
	dc.w	101,80,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget0_image		;pointer to primary image
	dc.l	GadgetAlt3_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	14			;gadget ID
	dc.l	NULL

Gadget15

	dc.l	Gadget16
	dc.w	114,80,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget1_image		;pointer to primary image
	dc.l	GadgetAlt4_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	15			;gadget ID
	dc.l	NULL


Gadget16

	dc.l	Gadget17
	dc.w	101,91,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget0_image		;pointer to primary image
	dc.l	GadgetAlt3_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	16			;gadget ID
	dc.l	NULL

Gadget17

	dc.l	Gadget20
	dc.w	114,91,10,9		;left,top,width,height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget1_image		;pointer to primary image
	dc.l	GadgetAlt4_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	17			;gadget ID
	dc.l	NULL


Gadget0_image

	dc.w	0,0			;left,top
	dc.w	10,9,2			;width,height,depth
	dc.l	Gadget0_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			; next image

Gadget1_image

	dc.w	0,0			;left,top
	dc.w	10,9,2			;width,height,depth
	dc.l	Gadget1_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			; next image


GadgetAlt3_image

	dc.w	0,0			;left,top
	dc.w	10,9,2			;width,height,depth
	dc.l	Gadget0Alt_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			; next image

GadgetAlt4_image

	dc.w	0,0			;left,top
	dc.w	10,9,2			;width,height,depth
	dc.l	Gadget1Alt_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			; next image



Gadget20

	dc.l	Gadget21
	dc.w	127,3,68,9		;left, top, width, height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget20_image		;pointer to primary image
	dc.l	GadgetAlt_image		;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	20			;gadget ID
	dc.l	NULL			;no known user data

Gadget20_image

	dc.w	0,0			;left,top
	dc.w	68,9,2			;width,height,depth
	dc.l	Gadget20_data		;image data
 	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			;next image


Gadget21

	dc.l	Gadget22
	dc.w	127,14,68,9		;left, top, width, height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget21_image		;pointer to primary image
	dc.l	GadgetAlt_image		;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	21			;gadget ID
	dc.l	NULL			;no known user data

Gadget21_image

	dc.w	0,0			;left, top
	dc.w	68,9,2			;width, height, depth
	dc.l	Gadget21_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			;next image


Gadget22

	dc.l	Gadget23
	dc.w	127,25,68,9		;left, top, width, height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget22_image		;pointer to primary image
	dc.l	GadgetAlt_image		;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	22			;gadget ID
	dc.l	NULL			;no known user data

Gadget22_image

	dc.w	0,0			;left, top
	dc.w	68,9,2			;width, height, depth
	dc.l	Gadget22_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			;next image


Gadget23

	dc.l	Gadget24
	dc.w	127,36,68,9		;left, top, width, height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget23_image		;pointer to primary image
	dc.l	GadgetAlt_image		;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	23			;gadget ID
	dc.l	NULL			;no known user data

Gadget23_image

	dc.w	0,0			;left, top
	dc.w	68,9,2			;width, height, depth
	dc.l	Gadget23_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			;next image


Gadget24

	dc.l	Gadget25
	dc.w	197,3,68,9		;left, top, width, height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget24_image		;pointer to primary image
	dc.l	GadgetAlt_image		;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	24			;gadget ID
	dc.l	NULL			;no known user data

Gadget24_image

	dc.w	0,0			;left, top
	dc.w	68,9,2			;width, height, depth
	dc.l	Gadget24_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			;next image


Gadget25

	dc.l	Gadget26
	dc.w	197,14,68,9		;left, top, width, height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget25_image		;pointer to primary image
	dc.l	GadgetAlt_image		;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	25			;gadget ID
	dc.l	NULL			;no known user data

Gadget25_image

	dc.w	0,0			;left, top
	dc.w	68,9,2			;width, height, depth
	dc.l	Gadget25_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			;next image


Gadget26

	dc.l	Gadget27
	dc.w	197,25,68,9		;left, top, width, height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget26_image		;pointer to primary image
	dc.l	GadgetAlt_image		;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	26			;gadget ID
	dc.l	NULL			;no known user data

Gadget26_image

	dc.w	0,0			;left, top
	dc.w	68,9,2			;width, height, depth
	dc.l	Gadget26_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			;next image


Gadget27

	dc.l	Gadget28
	dc.w	197,36,68,9		;left, top, width, height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget27_image		;pointer to primary image
	dc.l	GadgetAlt_image		;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	27			;gadget ID
	dc.l	NULL			;no known user data

Gadget27_image

	dc.w	0,0			;left, top
	dc.w	68,9,2			;width, height, depth
	dc.l	Gadget27_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			;next image


Gadget28

	dc.l	Gadget29
	dc.w	281,117,36,13		;left, top, width, height
	dc.w	GADGIMAGE!GADGHIMAGE	;general flags
	dc.w	GADGIMMEDIATE!RELVERIFY	;activation flags
	dc.w	BOOLGADGET		;gadget type
	dc.l	Gadget28_image		;pointer to primary image
	dc.l	GadgetAlt2_image	;pointer to selected image
	dc.l	NULL			;pointer to IntuiText
	dc.l	0			;mutual exclude bit field
	dc.l	NULL			;no special info for a boolean gadget
	dc.w	28			;gadget ID
	dc.l	NULL			;no known user data

Gadget28_image

	dc.w	0,0			;left, top
	dc.w	36,13,2			;width, height, depth
	dc.l	Gadget28_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			;next image


GadgetAlt_image

	dc.w	0,0			;left, top
	dc.w	68,9,2			;width, height, depth
	dc.l	GadgetAlt_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			;next image

GadgetAlt2_image

	dc.w	0,0			;left, top
	dc.w	36,13,2			;width, height, depth
	dc.l	GadgetAlt2_data		;image data
	dc.b	6,0			;plane pick, plane on/off
	dc.l	NULL			;next image

  
Gadget29
  	dc.l	NULL			;last gadget in list
  	dc.w 	6,134,24,8		;left, top, width, height
  	dc.w 	GADGHCOMP		;general flags
  	dc.w 	GADGIMMEDIATE		;activation flags
  	dc.w	STRGADGET		;gadget type
  	dc.l 	MyBorder		;pointer to primary image
  	dc.l 	0			;pointer to selected image
  	dc.l	0			;pointer to IntuiText
  	dc.l	0			;mutual exclude bit field
  	dc.l	StrgInfo		;no special info for a boolean gadget
  	dc.w	29			;gadget ID
  	dc.l	NULL			;no known user data

StrgInfo
  	dc.l	GadgetBuffer
  	dc.l	UNDO
  	dc.w	0
  	dc.w	3
  	dc.w	0
  	dc.w	0,0,0,0,0
  	dc.l	0,0,0
  

MyBorder
  	dc.w 	0,0
  	dc.b 	2,0,0
  	dc.b	5
  	dc.l 	Coordinates
  	dc.l	0
  
Coordinates
  	dc.w 		-2,-2
  	dc.w		26,-2
  	dc.w		26,9
  	dc.w		-2,9
  	dc.w		-2,-2
  	
GadgetBuffer:
  	dc.b 		'00',0,0 ;string gadgets string buffer  
UNDO: 
  	dc.l 		0	;string gadgets undo buffer
  		

;===============================================================
		SECTION	Variables,BSS
;===============================================================

_DOSBase
	ds.l		1	;storage for DOS lib pointer
_GfxBase
	ds.l		1	;storage for Graphics lib pointer
_IntuitionBase
	ds.l		1	;storage for Intuition lib pointer
OurProc:
	ds.l		1	;storage for ptr to process
OldWdw:
	ds.l		1	;storage for old pr_WindowPtr
WindowPtr:
	ds.l		1	;storage for window structure pointer 
returnMsg:
	ds.l		1	;storage for workbench message
RstPort:
	ds.l		1	;storage for pointer to windows rastport
printfBuffer:
	ds.w		1	;temp buffer

;===============================================================
		SECTION	GraphicData,DATA_C
;===============================================================

Image1Data:
	INCBIN	Dev_Wrk3:object/Screendata	;load data for screen image
	
Image2Data:
	INCBIN	Df0:object/sa.data		;load data for Analyzer image


Gadget0_data:

	dc.w	$400
	dc.w	$e00
	dc.w	$1f00
	dc.w	$3e00
	dc.w	$1e00
	dc.w	$1e00
	dc.w	$1c00
	dc.w	$400
	dc.w	$0
;	end of plane 0

	dc.w	$fbc0
	dc.w	$f9c0
	dc.w	$fcc0
	dc.w	$ffc0
	dc.w	$fdc0
	dc.w	$fdc0
	dc.w	$ffc0
	dc.w	$fbc0
	dc.w	$ffc0
;	end of plane 1
;	end of Gadget0_data


Gadget1_data

	dc.w	$0
	dc.w	$e00
	dc.w	$f00
	dc.w	$f00
	dc.w	$1f00
	dc.w	$f80
	dc.w	$700
	dc.w	$200
	dc.w	$0
;	end of plane 0

	dc.w	$ffe0
	dc.w	$ffe0
	dc.w	$fee0
	dc.w	$fee0
	dc.w	$ffe0
	dc.w	$fe60
	dc.w	$fce0
	dc.w	$fde0
	dc.w	$ffe0
;	end of plane 1
;	end of Gadget1_data


Gadget20_data

	dc.w	$0,$3e7,$0,$0,$0
	dc.w	$0,$1f3,$8000,$0,$0
	dc.w	$0,$1fb,$bddc,$0,$0
	dc.w	$0,$1fb,$9efe,$0,$0
	dc.w	$0,$1f3,$befc,$0,$0
	dc.w	$0,$1c3,$fe7c,$0,$0
	dc.w	$0,$3c7,$fe3c,$0,$0
	dc.w	$0,$1e3,$fff8,$0,$0
	dc.w	$0,$0,$70,$0,$0
;	end of plane 0 

	dc.w	$ffff,$fc18,$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
	dc.w	$ffff,$fedd,$c223,$ffff,$f000
	dc.w	$ffff,$fedd,$ffef,$ffff,$f000
	dc.w	$ffff,$fefd,$c76f,$ffff,$f000
	dc.w	$ffff,$fefd,$9fef,$ffff,$f000
	dc.w	$ffff,$fcf9,$b7ff,$ffff,$f000
	dc.w	$ffff,$ffff,$ff1f,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
;	end of plane 1
;	end of Gadget2_data


Gadget21_data

	dc.w	$0,$f800,$0,$0,$0
	dc.w	$0,$7c03,$3000,$0,$0
	dc.w	$0,$7ef7,$fbbe,$f800,$0
	dc.w	$0,$7e7b,$ffdf,$7c00,$0
	dc.w	$0,$7cfb,$bfff,$fe00,$0
	dc.w	$0,$71fb,$bffd,$fe00,$0
	dc.w	$0,$f1f9,$9bfc,$7e00,$0
	dc.w	$0,$78fc,$cdfe,$3600,$0
	dc.w	$0,$0,$0,$0,$0
;	end of plane 0 

	dc.w	$ffff,$7ff,$ffff,$ffff,$f000
	dc.w	$ffff,$fffc,$cfff,$ffff,$f000
	dc.w	$ffff,$b709,$9c41,$7ff,$f000
	dc.w	$ffff,$b7ff,$fdff,$ffff,$f000
	dc.w	$ffff,$bf1d,$db6f,$b7ff,$f000
	dc.w	$ffff,$be7d,$dbef,$b7ff,$f000
	dc.w	$ffff,$3edf,$ff0f,$b7ff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
;	end of plane 1
;	end of Gadget2_data


Gadget22_data

	dc.w	$0,$3f0,$cc00,$0,$0
	dc.w	$0,$1f8,$e6c0,$0,$0
	dc.w	$0,$1d8,$fde0,$0,$0
	dc.w	$0,$1e3,$eef0,$0,$0
	dc.w	$0,$1f7,$eee0,$0,$0
	dc.w	$0,$1f7,$eee0,$0,$0
	dc.w	$0,$3fb,$fe60,$0,$0
	dc.w	$0,$1f9,$ff30,$0,$0
	dc.w	$0,$0,$0,$0,$0
;	end of plane 0

	dc.w	$ffff,$fc0f,$33ff,$ffff,$f000
	dc.w	$ffff,$ffff,$7f3f,$ffff,$f000
	dc.w	$ffff,$feff,$627f,$ffff,$f000
	dc.w	$ffff,$fedc,$7fff,$ffff,$f000
	dc.w	$ffff,$fef9,$f77f,$ffff,$f000
	dc.w	$ffff,$fecb,$777f,$ffff,$f000
	dc.w	$ffff,$fcdf,$67ff,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
;	end of plane 1
;	end of Gadget3_data


Gadget23_data

	dc.w	$0,$7c00,$0,$c000,$800
	dc.w	$0,$3e00,$0,$e000,$800
	dc.w	$0,$3f73,$9df0,$e000,$800
	dc.w	$0,$3fff,$fefb,$e000,$800
	dc.w	$0,$3eff,$7fff,$e000,$800
	dc.w	$0,$3eff,$ffef,$e000,$800
	dc.w	$0,$7f7b,$ffe3,$e000,$800
	dc.w	$0,$3bbd,$cef1,$f000,$800
	dc.w	$0,$0,$0,$0,$800
;	end of plane 0

	dc.w	$ffff,$83ff,$ffff,$3fff,$f000
	dc.w	$ffff,$ffff,$ffff,$7fff,$f000
	dc.w	$ffff,$db8c,$620f,$7fff,$f000
	dc.w	$ffff,$db39,$cffc,$7fff,$f000
	dc.w	$ffff,$df6f,$fb7d,$ffff,$f000
	dc.w	$ffff,$df7f,$1b7f,$7fff,$f000
	dc.w	$ffff,$9be7,$7b7f,$7fff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
;	end of plane 1
;	end of Gadget4_data


Gadget24_data

	dc.w	$0,$f0,$0,$0,$0
	dc.w	$0,$1f9,$8000,$0,$0
	dc.w	$0,$1cf,$ddf0,$0,$0
	dc.w	$0,$f1,$fef8,$0,$0
	dc.w	$0,$79,$fffc,$0,$0
	dc.w	$0,$19d,$fffc,$0,$0
	dc.w	$0,$1fc,$dff8,$0,$0
	dc.w	$0,$f8,$6fe0,$0,$0
	dc.w	$0,$0,$e0,$0,$0
;	end of plane 0

	dc.w	$ffff,$ff0f,$ffff,$ffff,$f000
	dc.w	$ffff,$fe7e,$7fff,$ffff,$f000
	dc.w	$ffff,$fefc,$e20f,$ffff,$f000
	dc.w	$ffff,$ffcf,$efff,$ffff,$f000
	dc.w	$ffff,$fffe,$db6f,$ffff,$f000
	dc.w	$ffff,$fe6e,$db6f,$ffff,$f000
	dc.w	$ffff,$fecf,$fb7f,$ffff,$f000
	dc.w	$ffff,$ffff,$fe7f,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
;	end of plane 1
;	end of Gadget5_data


Gadget25_data

	dc.w	$0,$79c,$0,$0,$800
	dc.w	$0,$fce,$0,$0,$800
	dc.w	$0,$e6e,$e7be,$0,$800
	dc.w	$0,$e0f,$f3df,$0,$800
	dc.w	$0,$e0f,$ffdf,$8000,$800
	dc.w	$0,$ecf,$ffdd,$8000,$800
	dc.w	$0,$7fe,$fffc,$0,$800
	dc.w	$0,$3cf,$7ffe,$0,$800
	dc.w	$0,$0,$0,$0,$800
;	end of plane 0

	dc.w	$ffff,$f863,$ffff,$ffff,$f000
	dc.w	$ffff,$f3ff,$ffff,$ffff,$f000
	dc.w	$ffff,$f7f7,$1841,$ffff,$f000
	dc.w	$ffff,$f7f6,$7fff,$ffff,$f000
	dc.w	$ffff,$f7f6,$d8ef,$ffff,$f000
	dc.w	$ffff,$f736,$fbef,$ffff,$f000
	dc.w	$ffff,$fe67,$c6cf,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
;	end of plane 1
;	end of Gadget6_data


Gadget26_data

	dc.w	$0,$1f9b,$8000,$0,$0
	dc.w	$0,$fcd,$d800,$0,$0
	dc.w	$0,$ef9,$fddf,$0,$0
	dc.w	$0,$f1d,$dfef,$8000,$0
	dc.w	$0,$f9d,$dfff,$c000,$0
	dc.w	$0,$e1d,$dffe,$c000,$0
	dc.w	$0,$1e3f,$cdfe,$0,$0
	dc.w	$0,$f1f,$e6ff,$0,$0
	dc.w	$0,$0,$0,$0,$0
;	end of plane 0

	dc.w	$ffff,$e064,$7fff,$ffff,$f000
	dc.w	$ffff,$ffff,$e7ff,$ffff,$f000
	dc.w	$ffff,$f7c6,$ce20,$ffff,$f000
	dc.w	$ffff,$f6fe,$feff,$ffff,$f000
	dc.w	$ffff,$f7ee,$edb7,$ffff,$f000
	dc.w	$ffff,$f7ee,$edf7,$ffff,$f000
	dc.w	$ffff,$e7cc,$ff87,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
;	end of plane 1
;	end of Gadget7_data


Gadget27_data

	dc.w	$0,$1e00,$38,$0,$800
	dc.w	$0,$3f00,$19c,$0,$800
	dc.w	$0,$39f7,$fbdf,$0,$800
	dc.w	$0,$1e3f,$fdff,$8000,$800
	dc.w	$0,$f3f,$7fdf,$8000,$800
	dc.w	$0,$339f,$7fdf,$8000,$800
	dc.w	$0,$3f8f,$7eff,$8000,$800
	dc.w	$0,$1f3e,$367d,$8000,$800
	dc.w	$0,$1c,$0,$0,$800
;	end of plane 0

	dc.w	$ffff,$e1ff,$ffc7,$ffff,$f000
	dc.w	$ffff,$cfff,$fe7f,$ffff,$f000
	dc.w	$ffff,$df88,$4ec,$ffff,$f000
	dc.w	$ffff,$f9fb,$ffef,$ffff,$f000
	dc.w	$ffff,$ffdb,$b6ef,$ffff,$f000
	dc.w	$ffff,$cdfb,$b6ed,$ffff,$f000
	dc.w	$ffff,$d9ff,$b7cd,$ffff,$f000
	dc.w	$ffff,$ffc7,$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
;	end of plane 1
;	end of Gadget8_data


Gadget28_data

	dc.w	$0,$0,$0
	dc.w	$0,$0,$0
	dc.w	$3c0,$30,$0
	dc.w	$1e0,$38,$0
	dc.w	$1c7,$3c38,$0
	dc.w	$1cf,$9ef8,$0
	dc.w	$1cf,$fff8,$0
	dc.w	$1ff,$fff8,$0
	dc.w	$3ff,$fef8,$0
	dc.w	$1fb,$bf7c,$0
	dc.w	$0,$0,$0
	dc.w	$0,$0,$0
	dc.w	$0,$0,$0
;	end of plane 0

	dc.w	$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$f000
	dc.w	$fc3f,$ffcf,$f000
	dc.w	$ffff,$ffdf,$f000
	dc.w	$fef8,$c3df,$f000
	dc.w	$fef3,$ff1f,$f000
	dc.w	$fef6,$c67f,$f000
	dc.w	$fec6,$dedf,$f000
	dc.w	$fcde,$f7df,$f000
	dc.w	$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$f000
;	end of plane 1
;	end of Gadget9_data


GadgetAlt_data

	dc.w	$0,$3c,$1dc0,$0,$800
	dc.w	$0,$7e,$fe0,$0,$800
	dc.w	$0,$77,$fc0,$0,$800
	dc.w	$0,$77,$f80,$0,$800
	dc.w	$0,$77,$f00,$0,$800
	dc.w	$0,$77,$cfb0,$0,$800
	dc.w	$0,$3f,$7fd8,$0,$800
	dc.w	$0,$1e,$ee0,$0,$800
	dc.w	$0,$0,$0,$0,$800
;	end of plane 0

	dc.w	$ffff,$ffc3,$e23f,$ffff,$f000
	dc.w	$ffff,$ff9f,$feff,$ffff,$f000
	dc.w	$ffff,$ffbb,$f6ff,$ffff,$f000
	dc.w	$ffff,$ffbb,$f7ff,$ffff,$f000
	dc.w	$ffff,$ffbb,$f7ff,$ffff,$f000
	dc.w	$ffff,$ffbb,$37cf,$ffff,$f000
	dc.w	$ffff,$fff3,$e6ff,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$ffff,$ffff,$f000
;	end of plane 1
;	end of GadgetAlt_data


GadgetAlt2_data

	dc.w	$0,$0,$0
	dc.w	$0,$0,$0
	dc.w	$1e,$ee0,$0
	dc.w	$3f,$7f0,$0
	dc.w	$3b,$87e0,$0
	dc.w	$3b,$87c0,$0
	dc.w	$3b,$8780,$0
	dc.w	$3b,$e7d8,$0
	dc.w	$1f,$bfec,$0
	dc.w	$f,$770,$0
	dc.w	$0,$0,$0
	dc.w	$0,$0,$0
	dc.w	$0,$0,$0
;	end of plane 0

	dc.w	$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$f000
	dc.w	$ffe1,$f11f,$f000
	dc.w	$ffcf,$ff7f,$f000
	dc.w	$ffdd,$fb7f,$f000
	dc.w	$ffdd,$fbff,$f000
	dc.w	$ffdd,$fbff,$f000
	dc.w	$ffdd,$9be7,$f000
	dc.w	$fff9,$f37f,$f000
	dc.w	$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$f000
	dc.w	$ffff,$ffff,$f000
;	end of plane 1
;	end of GadgetAlt2_data


Gadget0Alt_data

	dc.w	$fbd0
	dc.w	$f9d0
	dc.w	$fcd0
	dc.w	$ffd0
	dc.w	$fdd0
	dc.w	$fdd0
	dc.w	$ffd0
	dc.w	$ffd0
	dc.w	$ffd0
;	end of plane 0

	dc.w	$420
	dc.w	$e20
	dc.w	$1f20
	dc.w	$3e20
	dc.w	$1e20
	dc.w	$1e20
	dc.w	$1c20
	dc.w	$20
	dc.w	$20
;	end of plane 1
;	end of Gadget0Alt_data


Gadget1Alt_data

	dc.w	$ffd0
	dc.w	$ffd0
	dc.w	$fed0
	dc.w	$fed0
	dc.w	$ffd0
	dc.w	$fe50
	dc.w	$fcd0
	dc.w	$fdd0
	dc.w	$10
;	end of plane 0

	dc.w	$20
	dc.w	$e20
	dc.w	$f20
	dc.w	$f20
	dc.w	$1f20
	dc.w	$fa0
	dc.w	$720
	dc.w	$220
	dc.w	$ffe0
	
;	end of plane 1
;	end of Gadget1Alt_data

;===============================================================
		SECTION	MenuData,DATA
;===============================================================

INTUITEXTSTRUC: MACRO  ;TEXT NO.,LEFTEDGE,TOPEDGE

TEXT\1:
  	dc.b 		0,1,0,0		;front pen,back pen,drawmode,pad
  	dc.w 		\2,\3		;left edge,top edge
  	dc.l 		Font80,STRING\1,0 ;font type,string,next text
  	
STRING\1:
  	ENDM
  

;------ These are the menu structures        

Menu1:
  	dc.l 		Menu2		;next menu
  	dc.w 		0,0,70,10	;left,top,width,height
  	dc.w 		MENUENABLED	;flags
  	dc.l 		MenuTitle1	;pointer to text
  	dc.l 		MenuItem1.1	;pointer to menu items
  	dc.w 		0,0,0,0		;the silly named variables
  	
Menu2:
  	dc.l 		Menu3		;next menu
  	dc.w 		70,0,50,10	;left,top,width,height
  	dc.w 		MENUENABLED	;flags
  	dc.l 		MenuTitle2	;pointer to text
  	dc.l 		MenuItem2.1	;pointer to menu items
  	dc.w 		0,0,0,0		;the silly named variables
  	
Menu3:
  	dc.l 		NULL		;next menu - none
  	dc.w 		120,0,60,10	;left,top,width,height
  	dc.w 		MENUENABLED	;flags
  	dc.l 		MenuTitle3	;pointer to text
  	dc.l 		MenuItem3.1	;pointer to menu items
  	dc.w 		0,0,0,0		;the silly named variables

;------ Text for menus
  	
MenuTitle1:
	dc.b		'Project',0
	
MenuTitle2:
	dc.b		'Edit',0
	
MenuTitle3:
	dc.b		'Screens',0
	EVEN

;------ This is menu one's (Project) menu items

MenuItem1.1:
  	dc.l 		MenuItem1.2		;next item
  	dc.w 		0,0,100,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.1,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		New			;my extension
  
  	INTUITEXTSTRUC 1.1,6,1
	dc.b		'New',0
  	EVEN  
  	
MenuItem1.2:
  	dc.l 		MenuItem1.3		;next item
  	dc.w 		0,10,100,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.2,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		SubMenu1.2.1		;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Load			;my extension
  
  	INTUITEXTSTRUC 1.2,6,1
	dc.b		'Load ',$bb,0
  	EVEN  

MenuItem1.3:
  	dc.l 		MenuItem1.4		;next item
  	dc.w 		0,20,100,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.3,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		SubMenu1.3.1		;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Save			;my extension
  
  	INTUITEXTSTRUC 1.3,6,1
	dc.b		'Save ',$bb,0
  	EVEN  

MenuItem1.4:
  	dc.l 		MenuItem1.5		;next item
  	dc.w 		0,30,100,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.4,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		SubMenu1.4.1		;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Save_As			;my extension
  	
  	INTUITEXTSTRUC 1.4,6,1
	dc.b		'Save As ',$bb,0
  	EVEN  

MenuItem1.5:
  	dc.l 		MenuItem1.6		;next item
  	dc.w 		0,40,100,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.5,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Restore			;my extension
  
  	INTUITEXTSTRUC 1.5,6,1
	dc.b		'Restore',0
  	EVEN  

MenuItem1.6:
  	dc.l 		MenuItem1.7		;next item
  	dc.w 		0,50,100,10		;left,top,width,height
  	dc.w 		ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.6,NULL		;itemfill,selectfill
  	dc.b 		'D',0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Delete			;my extension
  
  	INTUITEXTSTRUC 1.6,6,1
	dc.b		'Delete',0
  	EVEN  

MenuItem1.7:
  	dc.l 		MenuItem1.8		;next item
  	dc.w 		0,60,100,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.7,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		SubMenu1.7.1		;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		About			;my extension
  
  	INTUITEXTSTRUC 1.7,6,1
	dc.b		'About ',$bb,0
  	EVEN  

MenuItem1.8:
  	dc.l 		NULL			;next item - none
  	dc.w 		0,70,100,10		;left,top,width,height
  	dc.w 		ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.8,NULL		;itemfill,selectfill
  	dc.b 		'Q',0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Quit			;my extension
  
  	INTUITEXTSTRUC 1.8,6,1
	dc.b		'Quit',0
  	EVEN  


;------ This is menu two's (Edit) menu items

MenuItem2.1:
  	dc.l 		MenuItem2.2		;next item
  	dc.w 		0,0,120,10		;left,top,width,height
  	dc.w 		ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT2.1,NULL		;itemfill,selectfill
  	dc.b 		'X',0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Cut			;my extension
  
  	INTUITEXTSTRUC 2.1,6,1
	dc.b		'Cut',0
  	EVEN  
  	
MenuItem2.2:
  	dc.l 		MenuItem2.3
  	dc.w 		0,10,120,10		;left,top,width,height
  	dc.w 		ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT2.2,NULL		;itemfill,selectfill
  	dc.b 		'C',0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Copy			;my extension
  
  	INTUITEXTSTRUC 2.2,6,1
	dc.b		'Copy',0
  	EVEN  

MenuItem2.3:
  	dc.l 		MenuItem2.4		;next item
  	dc.w 		0,20,120,10		;left,top,width,height
  	dc.w 		ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT2.3,NULL		;itemfill,selectfill
  	dc.b 		'P',0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Paste			;my extension
  
  	INTUITEXTSTRUC 2.3,6,1
	dc.b		'Paste',0
  	EVEN  

MenuItem2.4:
  	dc.l 		MenuItem2.5		;next item
  	dc.w 		0,30,120,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP		;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT2.4,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Clear			;my extension
  	
  	INTUITEXTSTRUC 2.4,6,1
	dc.b		'Clear',0
  	EVEN  

MenuItem2.5:
  	dc.l 		MenuItem2.6		;next item
  	dc.w 		0,40,120,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT2.5,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Play			;my extension
  
  	INTUITEXTSTRUC 2.5,6,1
	dc.b		'Play',0
  	EVEN  

MenuItem2.6:
  	dc.l 		MenuItem2.7		;next item - none
  	dc.w 		0,50,120,10		;left,top,width,height
  	dc.w 		ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT2.6,NULL		;itemfill,selectfill
  	dc.b 		'T',0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Transpose		;my extension
  
  	INTUITEXTSTRUC 2.6,6,1
	dc.b		'Transpose',0
  	EVEN  
  	
MenuItem2.7:
  	dc.l 		NULL			;next item - none
  	dc.w 		0,60,120,10		;left,top,width,height
  	dc.w 		ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT2.7,NULL		;itemfill,selectfill
  	dc.b 		'R',0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Record			;my extension
  
  	INTUITEXTSTRUC 2.7,6,1
	dc.b		'Record',0
  	EVEN  
  	
;------ This is menu three's (Screens) menu items

MenuItem3.1:
  	dc.l 		MenuItem3.2		;next item
  	dc.w 		0,0,130,10		;left,top,width,height
  	dc.w 		ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT3.1,NULL		;itemfill,selectfill
  	dc.b 		'S',0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Score			;my extension
  
  	INTUITEXTSTRUC 3.1,6,1
	dc.b		'Score',0
  	EVEN  
  	
MenuItem3.2:
  	dc.l 		NULL			;next item - none
  	dc.w 		0,10,130,10		;left,top,width,height
  	dc.w 		ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT3.2,NULL		;itemfill,selectfill
  	dc.b 		'I',0			;command,pad
  	dc.l 		NULL			;ptr to sub menu
  	dc.w 		MENUNULL		;next select
  	dc.l 		Instruments		;my extension
  
  	INTUITEXTSTRUC 3.2,6,1
	dc.b		'Instruments',0
  	EVEN  
  	
;------ These are menu one's submenus

SubMenu1.2.1:
  	dc.l 		SubMenuItem1.2.2	;next sub item
  	dc.w 		90,0,90,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.2.1,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu (ignored)
  	dc.w 		MENUNULL		;next select
  	dc.l 		LoadSong		;my extension
  
  	INTUITEXTSTRUC 1.2.1,6,1
	dc.b		'Song',0
  	EVEN  
  	
SubMenuItem1.2.2:
  	dc.l 		SubMenuItem1.2.3	;next sub item
  	dc.w 		90,10,90,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.2.2,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu (ignored)
  	dc.w 		MENUNULL		;next select
  	dc.l 		LoadMod			;my extension
  
  	INTUITEXTSTRUC 1.2.2,6,1
	dc.b		'Module',0
  	EVEN  

SubMenuItem1.2.3:
  	dc.l 		NULL			;next sub item - none
  	dc.w 		90,20,90,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.2.3,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu (ignored)
  	dc.w 		MENUNULL		;next select
  	dc.l 		LoadInst		;my extension
  
  	INTUITEXTSTRUC 1.2.3,6,1
	dc.b		'Instrument',0
  	EVEN  

SubMenu1.3.1:
  	dc.l 		SubMenuItem1.3.2	;next sub item
  	dc.w 		90,0,90,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.2.1,NULL		;re-use 1.2.1 intuitext
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu (ignored)
  	dc.w 		MENUNULL		;next select
  	dc.l 		SaveSong		;my extension
  
SubMenuItem1.3.2:
  	dc.l 		SubMenuItem1.3.3	;next sub item
  	dc.w 		90,10,90,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.2.2,NULL		;re-use 1.2.2 intuitext
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu (ignored)
  	dc.w 		MENUNULL		;next select
  	dc.l 		SaveMod			;my extension
  
SubMenuItem1.3.3:
  	dc.l 		NULL
  	dc.w 		90,20,90,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.2.3,NULL		;re-use 1.2.3 intuitext
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu (ignored)
  	dc.w 		MENUNULL		;next select
  	dc.l 		SaveInst		;my extension
  
SubMenu1.4.1:
  	dc.l 		SubMenuItem1.4.2	;next sub item
  	dc.w 		90,0,90,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.2.1,NULL		;re-use 1.2.1 intuitext
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu (ignored)
  	dc.w 		MENUNULL		;next select
  	dc.l 		SaveAsSong		;my extension
  
SubMenuItem1.4.2:
  	dc.l 		SubMenuItem1.4.3	;next sub item
  	dc.w 		90,10,90,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.2.2,NULL		;re-use 1.2.2 intuitext
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu (ignored)
  	dc.w 		MENUNULL		;next select	
  	dc.l 		SaveAsMod		;my extension
  
SubMenuItem1.4.3:
  	dc.l 		NULL			;next sub item - none
  	dc.w 		90,20,90,10		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHCOMP	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		TEXT1.2.3,NULL		;re-use 1.2.3 intuitext
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu (ignored)
  	dc.w 		MENUNULL		;next select
  	dc.l 		SaveAsInst		;my extension
  
SubMenu1.7.1:
  	dc.l 		NULL			;next sub item - none
  	dc.w 		90,0,140,90		;left,top,width,height
  	dc.w 		ITEMTEXT|ITEMENABLED|HIGHNONE	;flags
  	dc.l 		0			;mutual exclude
  	dc.l 		AboutText1,NULL		;itemfill,selectfill
  	dc.b 		0,0			;command,pad
  	dc.l 		NULL			;ptr to sub menu (ignored)
  	dc.w 		MENUNULL		;next select
  	dc.l 		DoNothing		;my extension

;------ Intuitext structures for 'About' text.Note that these are
;------ linked together to allow more than one line of text.
;------ Alternativly we could have used an image to display some
;------ graphics,in which case we would remove the ITEMTEXT flag.
  
AboutText1
  	dc.b 		0,1,0,0		;front pen,back pen,drawmode,pad
  	dc.w 		10,10		;left edge,top edge
  	dc.l 		Font80		;font type
  	dc.l		AboutString1	;string
  	dc.l		AboutText2	;next text
  	
AboutString1:
	dc.b		'Amitracker V1.0',0
	EVEN
	
AboutText2
  	dc.b 		0,1,0,0		;front pen,back pen,drawmode,pad
  	dc.w 		20,30		;left edge,top edge
  	dc.l 		Font80		;font type
  	dc.l		AboutString2	;string
  	dc.l		AboutText3	;next text
  	
AboutString2:
	dc.b		'By S.Marshall',0
	EVEN
	
AboutText3
  	dc.b 		0,1,0,0		;front pen,back pen,drawmode,pad
  	dc.w 		60,50		;left edge,top edge
  	dc.l 		Font80		;font type
  	dc.l		AboutString3	;string
  	dc.l		AboutText4	;next text
  	
AboutString3:
	dc.b		'for',0
	EVEN
	
AboutText4
  	dc.b 		0,1,0,0		;front pen,back pen,drawmode,pad
  	dc.w 		15,70		;left edge,top edge
  	dc.l 		Font80		;font type
  	dc.l		AboutString4	;string
  	dc.l		NULL		;next text
  	
AboutString4:
	dc.b		'Newsflash U.K.',0
	EVEN
