ùúùú                                        	incdir	"include:"
	include	"libraries/gadtools.i"
	include	"libraries/gadutil.i"
	include	"libraries/gadutil_lib.i"
	include	"LVOs.i"
	include	"gadutil_20to30comp.i"

TESTPROG:	equ	1
	
start:
	move.l	_AbsExecBase.w,a6
 if TESTPROG=2
	lea.l	mybss,a5		; Get pointer to BSS
	suba.l	a1,a1
	CallLib	FindTask
	move.l	d0,process(a5)
	move.l	d0,a1
	moveq.l	#20,d0
	CallLib	SetTaskPri
	move.w	d0,oldpri(a5)
 endif
 	lea.l	libptrs(pc),a2		; Get pointer to libraries to open
	move.w	(a2)+,d2		; Get number of libraries to open
.openlib:
	moveq.l	#0,d0			; Clear version number
	move.w	(a2)+,d0		; Get required version of library
	move.l	(a2),a1			; Get library name pointer
	CallLib	OpenLibrary
	move.l	d0,(a2)+
	dbeq	d2,.openlib
	beq.s	.closelibs		; Close opened libs if error

	lea.l	catalogname(pc),a0	; Open the message catalog
	moveq.l	#0,d0
	CallLib	GU_OpenCatalog,GUtilBase(pc)
	move.l	d0,catalog
	bsr.w	TestProgram
	move.l	d0,a0			; Close the catalog
	CallLib	GU_CloseCatalog

.closelibs:
	move.l	_AbsExecBase.w,a6
	lea.l	libptrs(pc),a2		; Get pointer to libraries
	move.w	(a2)+,d2		; Get number of libraries to close
.closelib:
	tst.w	(a2)+			; Skip version number
	move.l	(a2)+,d0		; Get base address
	beq.s	.notopen		; Library not opened
	move.l	d0,a1
	CallLib	CloseLibrary		; Close if open
	dbra	d2,.closelib
.notopen:
 if TESTPROG=2
	move.w	oldpri(a5),d0
	move.l	process(a5),a1
	CallLib	SetTaskPri
 endif
	moveq.l	#0,d0	
	rts

libptrs:	dc.w	6-1
		dc.w	37
IntuiBase:	dc.l	intuiname
		dc.w	37
GfxBase:	dc.l	gfxname
		dc.w	37
UtilBase:	dc.l	utilityname
		dc.w	37
GToolsBase:	dc.l	gtoolsname
		dc.w	37
DosBase:	dc.l	dosname
		dc.w	0
GUtilBase:	dc.l	gadutilname
				
intuiname:	dc.b	"intuition.library",0
gfxname:	dc.b	"graphics.library",0
utilityname:	dc.b	"utility.library",0
gtoolsname:	dc.b	"gadtools.library",0
dosname:	dc.b	"dos.library",0
gadutilname:	dc.b	"gadutil.library",0

		even

;------------------------------ The test program -----------------------------
LEFT_OFFSET:	equ	6
TOP_OFFSET:	equ	4

GAD_BUTTON1:	equ	0
GAD_BUTTON2:	equ	1
GAD_DRAWER:	equ	2
GAD_STRING:	equ	3
GAD_CHECKBOX:	equ	4
GAD_IMAGE:	equ	5
GAD_IMAGE2:	equ	6
GAD_IMAGE3:	equ	7

TestProgram:
	movem.l	d0-a6,-(sp)
	lea.l	mybss,a5		; Get pointer to BSS
	suba.l	a0,a0			; Lock the default public screen
	CallLib	LockPubScreen,IntuiBase(pc)
	move.l	d0,screen(a5)		; Save screen pointer
	beq.w	.noscreen

	lea.l	glist(pc),a0		; Pointer to gadget list pointer
	lea.l	gadgets(pc),a1		; Pointer to LayoutGadget structures
	move.l	d0,a2			; Screen pointer
	lea.l	LayoutTags(pc),a3	; Tags for LayoutGadgetsA

	move.l	sc_Font(a2),textattr	; Default font for gadgets
	move.l	GUtilBase(pc),a6
	CallLib	GU_LayoutGadgetsA	; Lay out the gadgets
	move.l	a0,gi(a5)
	beq.w	.unlocksc		; Error creating gadgets

	lea.l	window_tags(pc),a1	; Window tag pointer

	move.l	screen(a5),a0		; WA_Top = screen->Font->ta_YSize + 3
	move.l	sc_Font(a0),a0
	moveq.l	#0,d0
	move.w	ta_YSize(a0),d0
 if TESTPROG=2
	move.w	d0,fontheight(a5)
 endif
	addq.w	#3,d0
	move.l	d0,WinTop(a1)
	
	move.l	farright(pc),d0		; WA_InnerWidth = farright+LEFT_OFFSET
	addq.l	#LEFT_OFFSET,d0
	move.l	d0,InnerWidth(a1)

	move.l	farbottom(pc),d0	; WA_InnerHeight = farbotton+TOP_OFFSET
	addq.l	#TOP_OFFSET,d0		;  + WinTop
	add.l	WinTop(a1),d0
	move.l	d0,InnerHeight(a1)

	suba.l	a0,a0			; Open the window
	CallLib	OpenWindowTagList,IntuiBase(pc)
	move.l	d0,win(a5)
	beq.s	.freegads		; Error opening the window

	move.l	d0,a0			; Refresh everything in the window
	suba.l	a1,a1
	CallLib	GT_RefreshWindow,GToolsBase(pc)

	lea.l	MyNewMenu(pc),a0	; Create menu structure
	move.l	gi(a5),a1
	lea.l	emptytag(pc),a2
	move.l	GUtilBase(pc),a6
	CallLib	GU_CreateLocMenuA
	move.l	d0,MenuStrip(a5)
	beq.s	.closewin

	move.l	IntuiBase(pc),a6
	move.l	win(a5),a0
	move.l	MenuStrip(a5),a1
	CallLib	SetMenuStrip
	tst.l	d0
	beq.s	.FreeMenus
 if TESTPROG=2
	lea.l	XTable(pc),a0
	move.w	#16*12-1,d1
	move.w	fontheight(a5),d0
.addloop:
	add.w	d0,(a0)+
	dbra	d1,.addloop

	move.w	#1,valuetoadd(a5)
 endif	
	move.l	win(a5),a0
	bsr.s	ProcessEvents		; Wait for and process all events

	move.l	IntuiBase(pc),a6
	CallLib	ClearMenuStrip

;-------------------------- Exit routines ---------------------------
.FreeMenus:
	move.l	GToolsBase(pc),a6
	move.l	MenuStrip(a5),a0
	CallLib	FreeMenus
.closewin:
	move.l	win(a5),a0
	CallLib	CloseWindow,IntuiBase(pc)	
.freegads:
	move.l	gi(a5),a0
	move.l	GUtilBase(pc),a6
	CallLib	GU_FreeLayoutGadgets
.unlocksc:
	suba.l	a0,a0			; Unlock the public screen
	move.l	screen(a5),a1
	CallLib	UnlockPubScreen,IntuiBase(pc)
.noscreen:	
	movem.l	(sp)+,d0-a6
	rts

;--------------------- Wait for and process all events -----------------------
; Inputs:
;	A0 - Window pointer
;
ProcessEvents:
	movem.l	d0-a6,-(sp)
.waitmsg:
	move.l	32(sp),a0		; Get window pointer from stack
	move.l	wd_UserPort(a0),a0
	CallLib	WaitPort,_AbsExecBase.w

.getmsg:
	move.l	32(sp),a0		; Get the message from the window
	bsr.w	GetIMessage
	bmi.s	.getmsg
 if TESTPROG=2
	tst.l	d0
	bne.s	.getmsg1
	tst.b	trigger(a5)
	bne.w	.animgad

	tst.l	d0
 endif
	beq.s	.waitmsg
.getmsg1:
	cmp.l	#IDCMP_GADGETUP,d3	; Gadget up ?
	bne.w	.checkclose
	move.w	gg_GadgetID(a2),d1	; Get GadgetID

	cmp.w	#GAD_BUTTON1,d1		; Button 1 - block input for 1 second
	bne.s	.checkbutton2

	move.l	32(sp),a0
	CallLib	GU_BlockInput,GUtilBase(pc)

	moveq.l	#50,d1
	CallLib	Delay,DosBase(pc)

	move.l	32(sp),a0
	CallLib	GU_FreeInput,GUtilBase(pc)
	bra.s	.getmsg	

.checkbutton2:
	cmp.w	#GAD_BUTTON2,d1	
	bne.s	.checkfile
 if TESTPROG=2
	bchg	#1,trigger(a5)
 endif
	bra.s	.getmsg

.checkfile:
	cmp.w	#GAD_DRAWER,d1		; Drawer gadget - toggle LED
	bne.s	.checkimage
	bchg	#1,$bfe001	
	bra.s	.getmsg

.checkimage:
	cmp.w	#GAD_IMAGE,d1		; First Microbotics logo - toggle
	bne.s	.getmsg			;  LED and toggle it back after
	bchg	#1,$bfe001		;  one second
	move.l	32(sp),a0
	CallLib	GU_BlockInput,GUtilBase(pc)

	moveq.l	#50,d1
	CallLib	Delay,DosBase(pc)

	move.l	32(sp),a0
	CallLib	GU_FreeInput,GUtilBase(pc)
	bchg	#1,$bfe001
	bra.w	.getmsg	
 if TESTPROG=2
.animgad:
	move.w	dataoffset(a5),d2	; Get offset for tables
	lea.l	XTable(pc),a2
	lea.l	YTable(pc),a3
	
	move.l	gad1(pc),a4		; Remove gadget to change
	move.l	a4,a1
	move.l	win(a5),a0
	CallLib	RemoveGadget,IntuiBase(pc)

	move.w	valuetoadd(a5),d3	; Get value to add to offset
	tst.w	d2
	bpl.s	.offsminok
	moveq.l	#1,d3
	move.w	d3,valuetoadd(a5)
.offsminok:	
	cmp.w	#16*12,d2		; Check for too high offset
	blt.s	.offsok
	moveq.l	#-1,d3
	move.w	d3,valuetoadd(a5)
.offsok:
	move.w	(a2,d2.w),gg_LeftEdge(a4)
	move.w	(a3,d2.w),gg_TopEdge(a4)
	add.w	d3,dataoffset(a5)

	moveq.l	#-1,d0
	move.l	a4,a1			; Add back gadget to the window
	move.l	win(a5),a0
	CallLib	AddGadget

	move.l	a4,a0			; Redraw the window
	move.l	win(a5),a1
	suba.l	a2,a2
	moveq.l	#1,d0
	CallLib	RefreshGList
.notactive:
	bra.w	.getmsg	
 endif

.checkclose:
	cmp.l	#IDCMP_CLOSEWINDOW,d3	; Check for close gadget
	bne.w	.getmsg
	movem.l	(sp)+,d0-a6
	rts

;---------------------- Get a message from the window ------------------------
; Input:
;	A0 = pointer to window
; Output:
;	A2 = Message IAddress
;	D2 = Message Code
;	D3 = Message Class
; Flags:
;	 Z =  1 for no message (use BEQ)
;	 Z =  0 for a valid message other than IDCMP_REFRESHWINDOW
;	 N =  1 for a IDCMP_REFRESHWINDOW message (use BMI)
;
;------------------------------------------------------------------------------
GetIMessage:
	move.l	a0,-(sp)		; Save window pointer
	move.l	wd_UserPort(a0),a0	; Get UserPort

	CallLib	GU_GetIMsg,GUtilBase(pc)
	beq.s	.NoMessage		; No message - return

	move.l	d0,a1
	move.l	im_IAddress(a1),a2	; IAddress to A2
	moveq.l	#0,d2			; Clear code longword
	move.w	im_Code(a1),d2		; Code to D2
	move.l	im_Class(a1),d3		; Class to D3
	CallLib	GT_ReplyIMsg,GToolsBase(pc)	; Reply the message

	cmp.l	#IDCMP_REFRESHWINDOW,d3	; Do window need to be refreshed ?
	bne.b	.NoMessage		; Nope! Check next message!
	move.l	(sp),a0
	CallLib	GT_BeginRefresh		; Start refreshing window
	move.l	(sp),a0
	moveq.l	#TRUE,d0
	CallLib	GT_EndRefresh		; Refreshing done
	moveq.l	#-1,d0			; Set N flag
.NoMessage:
	move.l	(sp)+,a0
	rts

;------------------------------- Window datas --------------------------------

INTUIIDCMP:	equ	IDCMP_REFRESHWINDOW!IDCMP_CLOSEWINDOW
WINGADS:	equ	WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_CLOSEGADGET

window_tags:
	dc.l	WA_Left,	0,	WA_Top
WinTop:	equ	*-window_tags
	dc.l	0,		WA_InnerWidth
InnerWidth:EQU	*-window_tags
	dc.l	0,		WA_InnerHeight
InnerHeight:EQU	*-window_tags
	dc.l	0,		WA_IDCMP,INTUIIDCMP
MinimumIDCMP:	equ	*-4
	dc.l	WA_Flags,	WINGADS!WFLG_ACTIVATE!WFLG_SMART_REFRESH
	dc.l	WA_Gadgets
glist:	dc.l	0
	dc.l	WA_Title,WinTitle
emptytag:
	dc.l	TAG_DONE

WinTitle:	dc.b	"GadUtil Test",0
	even

;------------------------ Datas for LayoutGadgetsA ---------------------------
 if TESTPROG=2
XTable:	dc.w	 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,18,19,19
	dc.w	20,20,21,21,22,22,23,23,24,24,25,25,25,26,26,26
	dc.w	27,27,27,28,28,28,29,29,29,30,30,30,31,31,31,32
	dc.w	32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,35
	dc.w	35,35,35,35,35,36,36,36,36,36,36,37,37,37,37,37
	dc.w	37,37,38,38,38,38,38,38,39,39,39,39,39,39,39,39
;	dc.w	40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40
;	dc.w	40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40
;	dc.w	40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40
;	dc.w	40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40

YTable:	dc.w	 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8
	dc.w	 9, 9,10,10,11,11,12,12,13,13,14,14,14,15,15,16
	dc.w	16,17,17,18,18,19,19,20,20,21,21,22,22,23,24,25
	dc.w	26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
	dc.w	42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57
	dc.w	58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73
;	dc.w	74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89
;	dc.w	 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101,102,103,104,105
;	dc.w	106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121
;	dc.w	122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137
 endif
 	
LayoutTags:
	dc.l	GU_RightExtreme,	farright
	dc.l	GU_LowerExtreme,	farbottom
	dc.l	GU_MinimumIDCMP,	MinimumIDCMP
ta:	dc.l	GU_DefTextAttr,		0
cat:	dc.l	GU_Catalog,		0
	dc.l	GU_AppStrings,		AppStrings
	dc.l	TAG_DONE

textattr:	equ	ta+4	
catalog:	equ	cat+4

farright:	dc.l	0
farbottom:	dc.l	0

;------------------ Data for localizing of the program -----------------------

MSG_BUTTON1:	equ	0
MSG_BUTTON2:	equ	1
MSG_DRAWER:	equ	2
MSG_CHECKBOX:	equ	3
MSG_GNADGET:	equ	4
MNU_1_TITLE:	equ	100
MNI_1_IT1:	equ	101
MNI_1_IT2:	equ	102
MNI_1_IT3:	equ	103
MNS_1_IT3_1:	equ	104
MNS_1_IT3_2:	equ	105
MNI_1_IT4:	equ	106

AppStrings:
	dc.l	MSG_BUTTON1,	MSG_BUTTON1_STR
	dc.l	MSG_BUTTON2,	MSG_BUTTON2_STR
	dc.l	MSG_DRAWER,	MSG_DRAWER_STR
	dc.l	MSG_CHECKBOX,	MSG_CHECKBOX_STR
	dc.l	MSG_GNADGET,	MSG_GNADGET_STR
	dc.l	MNU_1_TITLE,	MNU_1_TITLE_STR
	dc.l	MNI_1_IT1,	MNI_1_IT1_STR
	dc.l	MNI_1_IT2,	MNI_1_IT2_STR
	dc.l	MNI_1_IT3,	MNI_1_IT3_STR
	dc.l	MNS_1_IT3_1,	MNS_1_IT3_1_STR
	dc.l	MNS_1_IT3_2,	MNS_1_IT3_2_STR
	dc.l	MNI_1_IT4,	MNI_1_IT4_STR

MSG_BUTTON1_STR:	dc.b	'Gnadget _1',0
MSG_BUTTON2_STR:	dc.b	'Gnadget _2',0
MSG_DRAWER_STR:		dc.b	'_FileName',0
MSG_CHECKBOX_STR:	dc.b	'Checkbox',0
MSG_GNADGET_STR:	dc.b	'Gnadget',0
MNU_1_TITLE_STR:	dc.b	' ',$00,'Project',0
MNI_1_IT1_STR:		dc.b	'O',$00,'Open...',0
MNI_1_IT2_STR:		dc.b	'S',$00,'Save',0
MNI_1_IT3_STR:		dc.b	' ',$00,'Print',0
MNS_1_IT3_1_STR:	dc.b	' ',$00,'Draft',0
MNS_1_IT3_2_STR:	dc.b	' ',$00,'NLQ',0
MNI_1_IT4_STR:		dc.b	'Q',$00,'Quit',0

catalogname:	dc.b	'internaltest.catalog',0
	even
;------------------------ End of localizing datas ----------------------------

button1_layout_tags:
	dc.l	GU_GadgetKind,	BUTTON_KIND,	GU_LocaleText,	MSG_BUTTON1
	dc.l	GU_Left,	LEFT_OFFSET,	GU_Top,		TOP_OFFSET
	dc.l	GU_AutoHeight,	4,		GU_DupeWidth,	GAD_BUTTON2
	dc.l	GU_LabelHotkey,	TRUE
	dc.l	GU_Flags,	PLACETEXT_IN,	TAG_DONE

button1_gadtools_tags:
	dc.l	GT_Underscore,	'_',		TAG_DONE

button2_layout_tags:
	dc.l	GU_GadgetKind,	BUTTON_KIND,	GU_LocaleText,	MSG_BUTTON2
	dc.l	GU_AutoWidth,	10,		GU_ToggleSelect,TRUE
	dc.l	GU_TopRel,	GAD_BUTTON1,	GU_AddTop,	INTERHEIGHT
	dc.l	GU_LabelHotkey,	TRUE
	dc.l	TAG_DONE

button2_gadtools_tags:
	dc.l	GT_Underscore,	'_',		TAG_DONE

drawer_layout_tags:
	dc.l	GU_GadgetKind,	FILE_KIND,	GU_LocaleText,	MSG_DRAWER
	dc.l	GU_Top,		TOP_OFFSET,	GU_LeftRel,	GAD_BUTTON1
	dc.l	GU_AdjustLeft,	INTERWIDTH*2,	GU_Width,	20
	dc.l	GU_AutoHeight,	4,		GU_Flags,	PLACETEXT_LEFT
	dc.l	GU_Hotkey,	'f',		GU_HotkeyCase,	TRUE
	dc.l	TAG_DONE

string_layout_tags:
	dc.l	GU_GadgetKind,	STRING_KIND,	GU_GadgetText,	NULL
	dc.l	GU_Columns,	15,		GU_LeftRel,	GAD_DRAWER
	dc.l	GU_Hotkey,	'F',		GU_HotkeyCase,	TRUE
	dc.l	TAG_DONE

string_gadtools_tags:
	dc.l	GTST_MaxChars,	100,		GTST_String,	test_str
	dc.l	GT_Underscore,	'_',		TAG_DONE

checkbox_layout_tags:
	dc.l	GU_GadgetKind,	CHECKBOX_KIND,	GU_LocaleText,	MSG_CHECKBOX
	dc.l	GU_Width,	26,		GU_AutoHeight,	1
	dc.l	GU_TopRel,	GAD_DRAWER,	GU_AddTop,	INTERHEIGHT
	dc.l	GU_AlignRight,	GAD_STRING,	GU_Flags,	PLACETEXT_LEFT
	dc.l	GU_LabelHotkey,	TRUE
	dc.l	TAG_DONE
	
checkbox_gadtools_tags:
	dc.l	GTCB_Checked,	TRUE,		GTCB_Scaled,	TRUE
	dc.l	GT_Underscore,	'_',		TAG_DONE

imagebutton_layout_tags:
	dc.l	GU_GadgetKind,	IMAGE_KIND,	GU_GadgetText,	ImageTxt
	dc.l	GU_Width,	40,		GU_Height,	20
	dc.l	GU_TopRel,	GAD_BUTTON2,	GU_AddTop,	INTERHEIGHT*2
	dc.l	GU_AlignLeft,	GAD_BUTTON1,	GU_Flags,	PLACETEXT_BELOW
	dc.l	GU_AddLeft,	INTERWIDTH*4
	dc.l	GUIM_Image,	testimage,	GUIM_BOOPSILook,FALSE
	dc.l	TAG_DONE

imagebutton2_layout_tags:
	dc.l	GU_GadgetKind,	IMAGE_KIND,	GU_GadgetText,	ImageTxt
	dc.l	GU_Width,	40,		GU_Height,	20
	dc.l	GU_TopRel,	GAD_BUTTON2,	GU_AddTop,	INTERHEIGHT*2
	dc.l	GU_LeftRel,	GAD_IMAGE,	GU_Flags,	PLACETEXT_BELOW
	dc.l	GU_AdjustLeft,	-INTERWIDTH
	dc.l	GUIM_Image,	testimage,	GUIM_SelectImg,	testimage2
	dc.l	GU_Hotkey,	$50,		GU_RawKey,	TRUE
	dc.l	GU_ToggleSelect,TRUE,		GU_Selected,	FALSE
	dc.l	TAG_DONE

imagebutton3_layout_tags:
	dc.l	GU_GadgetKind,	IMAGE_KIND,	GU_GadgetText,	ImageTxt
	dc.l	GU_Width,	40,		GU_Height,	20
	dc.l	GU_TopRel,	GAD_BUTTON2,	GU_AddTop,	INTERHEIGHT*2
	dc.l	GU_LeftRel,	GAD_IMAGE2,	GU_Flags,	PLACETEXT_BELOW
	dc.l	GU_AdjustLeft,	-INTERWIDTH
	dc.l	GU_Hotkey,	$51,		GU_RawKey,	TRUE
	dc.l	GUIM_Image,	testimage
	dc.l	GU_ToggleSelect,TRUE,		GU_Selected,	TRUE
	dc.l	TAG_DONE

gadgets:
	GADGET	GAD_BUTTON1, button1_layout_tags, button1_gadtools_tags, NULL
gad1:	equ	*-4
	GADGET	GAD_BUTTON2, button2_layout_tags, button2_gadtools_tags, NULL
	GADGET	GAD_DRAWER,  drawer_layout_tags,  NULL,			 NULL
	GADGET	GAD_STRING,  string_layout_tags,  string_gadtools_tags,  NULL
	GADGET	GAD_CHECKBOX,checkbox_layout_tags,checkbox_gadtools_tags,NULL
	GADGET	GAD_IMAGE,   imagebutton_layout_tags,	NULL,		 NULL
	GADGET	GAD_IMAGE2,   imagebutton2_layout_tags,	NULL,		 NULL
	GADGET	GAD_IMAGE3,   imagebutton3_layout_tags,	NULL,		 NULL
	GADGET	-1, NULL, NULL, NULL

testimage:
	dc.w	0,0		; Offset for image
	dc.w	32,16		; Width and Height
	dc.w	1		; Depth
	dc.l	MicroLogo
	dc.b	1
	dc.b	0
	dc.l	0

testimage2:
	dc.w	0,0		; Offset for image
	dc.w	32,16		; Width and Height
	dc.w	1		; Depth
	dc.l	MicroLogo2
	dc.b	1
	dc.b	0
	dc.l	0

ImageTxt:	dc.b	"Microbotics",0
BigTxt:		dc.b	"Big gnadget",0

test_str:	dc.b	"En liten textjävel...",0
		even

;--------------------------------- Menus ----------------------------------

MyNewMenu:	
	LOCMENU	NM_TITLE, MNU_1_TITLE,	0,	0,	0	; | Project |
	LOCMENU	NM_ITEM,  MNI_1_IT1,	0,	0,	1	; Open [O]
	LOCMENU	NM_ITEM,  MNI_1_IT2,	0,	0,	2	; Save [S]
	LOCMENU	NM_ITEM,  NM_BARLABEL,	0,	0,	0	; -----------

	LOCMENU	NM_ITEM,  MNI_1_IT3,	0,	0,	0	; Print...
	LOCMENU	NM_SUB,	  MNS_1_IT3_1,	0,	0,	3	;       Draft
	LOCMENU	NM_SUB,	  MNS_1_IT3_2,	0,	0,	4	;       NLQ
	LOCMENU	NM_ITEM,  NM_BARLABEL,	0,	0,	0	; -----------
	LOCMENU	NM_ITEM,  MNI_1_IT4,	0,	0,	5	; Quit [Q]

	LOCMENU	NM_END,	  NULL,		0,	0,	0

;-----------------------------------------------------------------------------
	STRUCTURE	_bss,0
 if TESTPROG=2
		BYTE	trigger
		BYTE	_pad1
		WORD	dataoffset
		WORD	fontheight
		WORD	valuetoadd
		LONG	process
		WORD	oldpri
 endif		
		LONG	screen
		LONG	win
		LONG	gi
		LONG	MenuStrip
	LABEL	_bss_SIZEOF

	SECTION	TestProg,BSS
mybss:	ds.b	_bss_SIZEOF


	section	program,data_c
MicroLogo:
	dc.l	%11111100000000000000000000111111
	dc.l	%11111110000000000000000001111111
	dc.l	%11111111000000000000000011111111
	dc.l	%11111111100000000000000111111111
	dc.l	%11111111110000000000001111111111
	dc.l	%11111111111000000000011111111111
	dc.l	%11111111111100000000111111111111
	dc.l	%11111111111110000001111111111111
	dc.l	%11111111111111000011111111111111
	dc.l	%11111111111111100111111111111111
	dc.l	%11111111111111100111111111111111
	dc.l	%11111111111111100111111111111111
	dc.l	%00000000000000000000000000000000
	dc.l	%11111111111111111111111111111111
	dc.l	%11111111111111111111111111111111
	dc.l	%11111111111111111111111111111111

MicroLogo2:
	dc.l	%11111111111111111111111111111111
	dc.l	%11111111111111111111111111111111
	dc.l	%11111111111111111111111111111111
	dc.l	%00000000000000000000000000000000
	dc.l	%11111111111111100111111111111111
	dc.l	%11111111111111100111111111111111
	dc.l	%11111111111111100111111111111111
	dc.l	%11111111111111000011111111111111
	dc.l	%11111111111110000001111111111111
	dc.l	%11111111111100000000111111111111
	dc.l	%11111111111000000000011111111111
	dc.l	%11111111110000000000001111111111
	dc.l	%11111111100000000000000111111111
	dc.l	%11111111000000000000000011111111
	dc.l	%11111110000000000000000001111111
	dc.l	%11111100000000000000000000111111
