* m68Iface
*  4-07-90 written

**		Copyright ©1990 Jeff Lavin & Paul Coward
**
**	Permission is granted to purchasers of Macro68 to modify this source
**	file.  Permission is further granted to distribute the source code that
**	they have modified subject to the following conditions:
**	1.  That the original, unaltered, source is included with the
**	    distribution.
**	2.  That no charge is made for the distribution, other than the cost of
**	    media.                    (Distribution via Fred Fish is permitted)
**	3.  That my copyright notice remains as part of this and any other
**	    file adapted from this file.
**
**	Tabstops : 8
**	Assemble with Macro68



		OBJFILE		'ram:m68Iface'
		EXEOBJ

Macro68Path	EQUSTR	'M68'

_LVOdsAllocCPremember	equ		-$1E
_LVOdsAllocScratch	equ		-$2A
_LVOdsClearRemember	equ		-$42
_LVOdsFreeScratch	equ		-$AE
_LVOdsParse		equ		-$D8
_LVOdsParseWorkbench	equ		-852
_LVOdsDosOpen		equ		-$198
_LVOdsDosClose		equ		-$19E
_LVOdsPuts		equ		-$288
_LVOdsDosCurrentDir	equ		-810
_LVOdsDosExecute	equ		-$31E
_LVOdsDosRead		equ		-$35A
_LVOdsDosWrite		equ		-$360
_LVOdsFlushPort		equ		-168
_LVOdsRedrawGadgets	equ		-222


	ifnd		csd_IntuitionBase
csd_IntuitionBase	equ	$08
csd_GfxBase		equ	$0C
csd_DSSBase		equ	$10
csd_DiskfontBase	equ	$20
csd_MathBase		equ	$24
csd_Output		equ	$50
csd_WorkBenchMsg	equ	68
AO_DSSLib		equ	$00008099		;alert number id support library can't be opened
Tab			equ	$09
Lf			equ	$0a
CSI			equ	$9B
	endc


	ifnd	EXEC_TYPES_I
	incpath	"INCLUDES:"
		macfile	"exec/types.i"
		macfile	"exec/execbase.i"
		macfile	"exec/alerts.i"
		macfile	"libraries/dos.i"
		macfile	"libraries/dosextens.i"
		macfile	"intuition/intuition.i"
		macfile	"workbench/startup.i"
_AbsExecBase		equ	4
_LVOActivateGadget	equ	-462	;intuition
_LVOAddGList		equ	-438	;intuition
_LVOAlert		equ	-108	;exec
_LVOClearMenuStrip	equ	-54	;intuition
_LVOCloseFont		equ	-78	;gfx
_LVOCloseLibrary	equ	-414	;exec
_LVOCloseWindow		equ	-72	;intuition
_LVODisplayAlert	equ	-90	;intuition
_LVOForbid		equ	-132	;exec
_LVOGetMsg		equ	-372	;exec
_LVOItemAddress		equ	-144	;intuition
_LVOOldOpenLibrary	equ	-408	;exec
_LVOOpenDiskFont	equ	-30	;diskfont
_LVOOpenLibrary		equ	-552	;exec
_LVOOpenWindow		equ	-204	;intuition
_LVORemoveGList		equ	-444	;intuition
_LVOReplyMsg		equ	-378	;exec
_LVORequest		equ	-240	;intuition
_LVOSetMenuStrip	equ	-264	;intuition
_LVOWait		equ	-318	;exec
_LVOWaitPort		equ	-384	;exec
_LVOWindowToBack	equ	-306	;intuition
	endc


			setso	84
csd_Window		so.l	1
csd_FontPointer		so.l	1
csd_FontPointer2	so.l	1
csd_CloseFlag		so.w	1
csd_SIZEOF		soval


Release	equ	'1.0 '
VerNo	equ	'0.04'


GadWidth	equ	197		;Flag gadget size
GadHeight	equ	9
TxtLen		equ	70		;Text string length
Col1		equ	12		;Flag gadget positions
Col2		equ	Col1+GadWidth+12
Col3		equ	Col2+GadWidth+12
Row1		equ	14
Row2		equ	28
Row3		equ	42
Row4		equ	56
Row5		equ	70
Row6		equ	84
Row7		equ	98
Row8		equ	112
Row9		equ	126
Row10		equ	145
Row11		equ	159
Row12		equ	173
Row13		equ	187


	; --- for calling system libraries

SYS	MACRO	;library vector
	jsr	(_LVO\1,a6)
	ENDM


***************************************
*** COLD ENTRY


START:		moveq		#0,d3
		suba.l		a4,a4
		movea.l		(_AbsExecBase).w,a6

	; --- do workbench stuff first

		movea.l		(ThisTask,a6),a3
		tst.l		(pr_CLI,a3)
		bne.b		.fromCLI		;branch if from CLI
		lea		(pr_MsgPort,a3),a0	;our process base
		SYS		WaitPort		;wait for message from starter
		lea		(pr_MsgPort,a3),a0	;our process base
		SYS		GetMsg
		move.l		d0,d3

	; --- open the support library

.fromCLI:	moveq		#5,d0			;version #
		lea		(supportLibName,pc),a1	;point to liberary name
		SYS		OpenLibrary		;Open the support library
		tst.l		d0
		bne.b		.supportOpen
		lea		(intuitionLibName,pc),a1
		SYS		OldOpenLibrary
		tst.l		d0
		bne.b		.intuitionAvailable
		move.l		#AT_Recovery!AG_OpenLib!AO_Intuition,d7
		SYS		Alert
		moveq		#RETURN_FAIL,d0
		rts

.intuitionAvailable:
		movea.l		d0,a6			;intuition base
		lea.l		(digisoftLibLost_AlertMsg,pc),a0
		moveq		#0,d0
		moveq		#50,d1
		SYS		DisplayAlert
		bra.b		2$

	; --- initialize the scratch area

.supportOpen:	movea.l		d0,a6
		moveq		#csd_SIZEOF,d0
		moveq		#33,d1
		moveq		#(1<<3),d2
		jsr		(_LVOdsAllocScratch,a6)
		beq.b		3$
2$		movea.l		a6,a1
		movea.l		(_AbsExecBase).w,a6
		SYS		CloseLibrary
		moveq		#ERROR_INVALID_RESIDENT_LIBRARY,d2
		moveq		#RETURN_FAIL,d0
		rts

3$		lea		(Title,pc),a1
		jsr		(_LVOdsPuts,a6)

	; --- parse args for WB

		move.l		(csd_WorkBenchMsg,a5),d2
		beq.b		configure
		movea.l		d2,a0			;workbench message pointer
		move.l		(sm_NumArgs,a0),d1
		beq.b		configure
		movea.l		(sm_ArgList,a0),a0
		subq.l		#1,d1
		beq.b		5$
		addq.l		#wa_SIZEOF,a0		;point to second argument
		move.l		(wa_Lock,a0),d1
		jsr		(_LVOdsDosCurrentDir,a6)

		movea.l		(wa_Name,a0),a0
		movea.l		a0,a1
		lea.l		(SourceFileBuf,pc),a2
4$		move.b		(a1)+,(a2)+
		bne.b		4$
		bra.b		6$

5$		movea.l		(wa_Name,a0),a0
6$		lea		(IconTemplate,pc),a1
		lea		(ArgPointers,pc),a2
		moveq		#numWBArgs,d0		;max # of args
		jsr		(_LVOdsParseWorkbench,a6)

configure:	bsr		preLoadConfig

openFont:	lea		(MyTextAttr,pc),a0	;Set up the display
		movea.l		(csd_DiskfontBase,a5),a6
		SYS		OpenDiskFont
		move.l		d0,(csd_FontPointer,a5)
		bne.b		0$
		lea		(FontError_Msg,pc),a1
		bra		ExitError

0$		lea		(TopazTextAttr,pc),a0	;Set up the display
		movea.l		(csd_GfxBase,a5),a6
		SYS		OpenFont
		move.l		d0,(csd_FontPointer2,a5)
		bne.b		1$
		lea		(FontError_Msg,pc),a1
		bra		ExitError

1$		lea		(MyWindow,pc),a0
		movea.l		(csd_IntuitionBase,a5),a6
		SYS		OpenWindow
		tst.l		d0
		bne.b		2$
		lea		(NoWindow_Msg,pc),a1
		bra		ExitError

2$		movea.l		d0,a4			;WindowPtr
		movea.l		(wd_RPort,a4),a1
		movea.l		(csd_FontPointer2,a5),a0
		movea.l		(csd_GfxBase,a5),a6
		SYS		SetFont

		movea.l		a4,a0
		lea		(Project_MENU,pc),a1	;Set menu strip
		movea.l		(csd_IntuitionBase,a5),a6
		SYS		SetMenuStrip
		lea		(SourceFileGad,pc),a0
		movea.l		a4,a1
		suba.l		a2,a2
		SYS		ActivateGadget
		bsr		MainLoop

Exit:		move.l		a4,d0
		beq.b		0$
		movea.l		a4,a0
		movea.l		(csd_IntuitionBase,a5),a6
		SYS		ClearMenuStrip
		movea.l		a4,a0
		SYS		CloseWindow

0$		movea.l		(csd_GfxBase,a5),a6
		move.l		(csd_FontPointer2,a5),d0
		beq.b		1$
		movea.l		d0,a1
		SYS		CloseFont

1$		move.l		(csd_FontPointer,a5),d0
		beq.b		2$
		movea.l		d0,a1
		SYS		CloseFont

2$		movea.l		(csd_DSSBase,a5),a6
		jsr		(_LVOdsFreeScratch,a6)
		movea.l		a6,a5
		movea.l		(_AbsExecBase).w,a6
		move.l		d0,d2
		beq.b		3$

		SYS		Forbid
		movea.l		d2,a1			;workbench message
		SYS		ReplyMsg

3$		movea.l		a5,a1
		SYS		CloseLibrary
		moveq		#0,d0			;return the result
		rts					;exit to DOS


ExitError:	movea.l		(csd_DSSBase,a5),a6
		jsr		(_LVOdsPuts,a6)
		bra		Exit


***************************************
***         INTUITION STUFF         ***
***************************************


MainLoop:	tst.w		(csd_CloseFlag,a5)
		beq.b		.WaitMsg
		rts

.WaitMsg:	movea.l		(wd_UserPort,a4),a0	;Wait for the user
		moveq		#0,d1
		move.b		(MP_SIGBIT,a0),d1
		moveq		#0,d0
		bset		d1,d0
		movea.l		(_AbsExecBase).w,a6
		SYS		Wait

GetIMsg:	movea.l		(_AbsExecBase).w,a6
		movea.l		(wd_UserPort,a4),a0
		SYS		GetMsg
		tst.l		d0
		beq.b		MainLoop
		movea.l		d0,a1
		move.w		(im_Code,a1),d2
		move.l		(im_Class,a1),d3
		move.l		(im_IAddress,a1),d4
		SYS		ReplyMsg

		cmpi.l		#GADGETUP,d3		;Only the RUN & String gadgets
		bne.b		1$
		movea.l		d4,a0
		move.l		(gg_UserData,a0),d0
		beq.b		GetIMsg			;no action required for 0 jump address
		movea.l		d0,a1			;jump address
		jsr		(a1)
		bra.b		GetIMsg

1$		cmpi.l		#CLOSEWINDOW,d3
		seq		(csd_CloseFlag,a5)

		cmpi.l		#MENUPICK,d3
		bne.b		GetIMsg
		moveq		#0,d0
		move.w		d2,d0
		lea		(Project_MENU,pc),a0
		movea.l		(csd_IntuitionBase,a5),a6
		SYS		ItemAddress
		tst.l		d0
		beq.b		GetIMsg
		movea.l		d0,a0
		movea.l		(mi_SIZEOF,a0),a0
		jsr		(a0)
		bra.b		GetIMsg



ActivateSourceFileGadget:
		lea		(SourceFileGad,pc),a0
		bra.b		ActivateGad
ActivateNextGadget:
		movea.l		(gg_NextGadget,a0),a0
ActivateGad:	movea.l		a4,a1
		suba.l		a2,a2
		movea.l		(csd_IntuitionBase,a5),a6
		jmp		(_LVOActivateGadget,a6)



ExecuteAndQuit:	st		(csd_CloseFlag,a5)	;yes - we know that move.b is quicker on a 68030 but it's not that important
ExecuteAndStay:	lea		(ExecuteBuffer,pc),a0	;Start Macro68
		moveq		#numStringGadgets-1,d0
		lea		(SourceFileGad,pc),a1
.nextGadget:	movea.l		(gg_SpecialInfo,a1),a2
		movea.l		(si_Buffer,a2),a3
		tst.b		(a3)
		beq.b		.skipGadget
		move.w		(gg_GadgetID,a1),d1
		move.w		d1,d2
		lsr.w		#8,d1
		move.b		d1,(a0)+
		move.b		d2,(a0)+
		move.b		#' ',(a0)+
..		move.b		(a3)+,(a0)+
		bne.b		..			;copy string
		move.b		#' ',(-1,a0)
.skipGadget:	movea.l		(gg_NextGadget,a1),a1
		dbra		d0,.nextGadget

		moveq		#NumFlagGadgets-1,d0
		lea		(A_Gadget,pc),a1
.testFlags:	move.w		(gg_Flags,a1),d1
		andi.w		#SELECTED,d1
		movea.l		(gg_NextGadget,a1),a1
		dbne		d0,.testFlags
		beq.b		noFlags

		move.b		#'-',(a0)+
		move.b		#'C',(a0)+
		move.b		#' ',(a0)+
		moveq		#NumFlagGadgets-1,d0
		lea		(A_Gadget,pc),a1
.findFlags:	move.w		(gg_Flags,a1),d1
		andi.w		#SELECTED,d1
		beq.b		.skipFlag
		move.b		(gg_GadgetID+1,a1),(a0)+
.skipFlag:	movea.l		(gg_NextGadget,a1),a1
		dbra		d0,.findFlags

noFlags:	clr.b		(a0)
		movea.l		(csd_DSSBase,a5),a6
		lea		(ExecuteString,pc),a1
		jsr		(_LVOdsPuts,a6)
		move.l		a1,d1
		moveq		#0,d2
		move.l		(csd_Output,a5),d3
		jsr		(_LVOdsDosExecute,a6)
		movea.l		(wd_UserPort,a4),a0
		jmp		(_LVOdsFlushPort,a6)


SetClosed:	st		(csd_CloseFlag,a5)
		rts



ABOUT:		lea		(AboutRequester,pc),a0
		movea.l		a4,a1
		jmp		(_LVORequest,a6)



SaveConfig:	move.l		#ConfigName,d1
		move.l		#MODE_NEWFILE,D2
		movea.l		(csd_DSSBase,a5),A6
		jsr		(_LVOdsDosOpen,a6)
		bne.b		1$
		rts
1$		move.l		d0,d1
		move.w		#PrefTableSize-1,d4
		lea		(PreferencesTable,pc),a2
..		move.l		(a2)+,d3		;length
		move.l		(a2)+,d2		;location
		jsr		(_LVOdsDosWrite,a6)
		dbne		d4,..
		jmp		(_LVOdsDosClose,a6)



LoadConfig:	movea.l		a4,a0
		movea.l		(wd_FirstGadget,a0),a1
		movea.l		(csd_IntuitionBase,a5),a6
		moveq		#-1,d0
		SYS		RemoveGList
		bsr.b		preLoadConfig
		movea.l		a4,a0
		lea		(A_Gadget,pc),a1
		suba.l		a2,a2
		moveq		#0,d0
		moveq		#-1,d1
		movea.l		(csd_IntuitionBase,a5),a6
		SYS		AddGList
		movea.l		(csd_DSSBase,a5),a6
		movea.l		(wd_FirstGadget,a4),a0
		movea.l		a4,a1
		suba.l		a2,a2
		moveq		#-1,d0
		jmp		(_LVOdsRedrawGadgets,a6)

preLoadConfig:	move.l		#ConfigName,d1
		move.l		#MODE_OLDFILE,d2
		movea.l		(csd_DSSBase,a5),A6
		jsr		(_LVOdsDosOpen,a6)
		bne.b		1$
		rts
1$		move.l		d0,d1			;file handle
		moveq		#PrefTableSize-1,d4
		lea		(PreferencesTable,pc),a2
..		move.l		(a2)+,d3		;length
		move.l		(a2)+,d2		;target buffer
		jsr		(_LVOdsDosRead,a6)
		dbne		d4,..
		jmp		(_LVOdsDosClose,a6)


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


PreferencesTable:
	dl	2,A_Gadget+gg_Flags
	dl	2,B_Gadget+gg_Flags
	dl	2,C_Gadget+gg_Flags
	dl	2,D_Gadget+gg_Flags
	dl	2,E_Gadget+gg_Flags
	dl	2,F_Gadget+gg_Flags
	dl	2,G_Gadget+gg_Flags
	dl	2,H_Gadget+gg_Flags
	dl	2,I_Gadget+gg_Flags
	dl	2,J_Gadget+gg_Flags
	dl	2,K_Gadget+gg_Flags
	dl	2,L_Gadget+gg_Flags
	dl	2,M_Gadget+gg_Flags
	dl	2,N_Gadget+gg_Flags
	dl	2,O_Gadget+gg_Flags
	dl	2,P_Gadget+gg_Flags
	dl	2,Q_Gadget+gg_Flags
	dl	2,R_Gadget+gg_Flags
	dl	2,S_Gadget+gg_Flags
	dl	2,T_Gadget+gg_Flags
	dl	2,U_Gadget+gg_Flags
	dl	2,V_Gadget+gg_Flags
	dl	2,W_Gadget+gg_Flags
	dl	2,X_Gadget+gg_Flags
	dl	2,Y_Gadget+gg_Flags
	dl	2,Z_Gadget+gg_Flags

	dl	130,SourceFileBuf
	dl	130,SymbolListBuf
	dl	130,ErrorFileBuf
	dl	130,HeaderFileBuf
	dl	130,IncludeListBuf
	dl	130,ListFileBuf
	dl	130,OutputFileBuf
	dl	130,ConfigFileBuf
	dl	130,EquateFileBuf
	dl	130,DefineListBuf
	dl	130,XRefFileBuf
	dl	10,FailAtBuf

	dl	6,FailAtInfo+si_BufferPos
	dl	6,SourceFileInfo+si_BufferPos
	dl	6,SymbolListInfo+si_BufferPos
	dl	6,ErrorFileInfo+si_BufferPos
	dl	6,HeaderFileInfo+si_BufferPos
	dl	6,IncludeListInfo+si_BufferPos
	dl	6,ListFileInfo+si_BufferPos
	dl	6,OutputFileInfo+si_BufferPos
	dl	6,ConfigFileInfo+si_BufferPos
	dl	6,EquateFileInfo+si_BufferPos
	dl	6,DefineListInfo+si_BufferPos
	dl	6,XRefFileInfo+si_BufferPos
PrefTableSize		EQU		(*-PreferencesTable)/8

MyTextAttr:	dl	TEENYname
		dw	8
		db	FS_NORMAL
		db	FPF_ROMFONT

TopazTextAttr:	dl	TOPAZname
		dw	8
		db	FS_NORMAL
		db	FPF_ROMFONT


MyWindow:	dw	0,0,640,200
		db	0,1
		dl	GADGETUP!MENUPICK!CLOSEWINDOW
		dl	WINDOWDRAG!WINDOWDEPTH!WINDOWCLOSE!ACTIVATE!SMART_REFRESH!NOCAREREFRESH
		dl	A_Gadget
		dl	0
		dl	WindowTitle
		dl	0,0
		dw	0,0,0,0
		dw	WBENCHSCREEN

*** Menu Stuff

Project_MENU:	dl	0		;Projects
		dw	0,0,63,0
		dw	MENUENABLED
		dl	Project_MenuName
		dl	MenuItem1
		dw	0,0,0,0

MenuItem1:	dl	MenuItem2		;Save Config
		dw	0,0,184,8
		dw	ITEMTEXT!COMMSEQ!ITEMENABLED!HIGHCOMP
		dl	0,Item1.ITxt,0
		db	'L',0
		dl	0
		dw	MENUNULL
		dl	LoadConfig

MenuItem2:	dl	MenuItem3		;Save Config
		dw	0,10,184,8
		dw	ITEMTEXT!COMMSEQ!ITEMENABLED!HIGHCOMP
		dl	0,Item2.ITxt,0
		db	'S',0
		dl	0
		dw	MENUNULL
		dl	SaveConfig

MenuItem3:	dl	MenuItem4		;About
		dw	0,20,184,8
		dw	ITEMTEXT!COMMSEQ!ITEMENABLED!HIGHCOMP
		dl	0,Item3.ITxt,0
		db	'A',0
		dl	0
		dw	MENUNULL
		dl	ABOUT

MenuItem4:	dl	0		;Quit
		dw	0,30,184,8
		dw	ITEMTEXT!COMMSEQ!ITEMENABLED!HIGHCOMP
		dl	0,Item4.ITxt,0
		db	'Q',0
		dl	0
		dw	MENUNULL
		dl	SetClosed

Item1.ITxt:	db	3,1,RP_COMPLEMENT,0		;Save Config
		dw	0,0
		dl	TopazTextAttr,Item1.Text,0

Item2.ITxt:	db	3,1,RP_COMPLEMENT,0		;Save Config
		dw	0,0
		dl	TopazTextAttr,Item2.Text,0

Item3.ITxt:	db	3,1,RP_COMPLEMENT,0		;About
		dw	0,0
		dl	TopazTextAttr,Item3.Text,0

Item4.ITxt:	db	3,1,RP_COMPLEMENT,0		;Quit
		dw	0,0
		dl	TopazTextAttr,Item4.Text,0

*** Bool Gadgets

A_Gadget:	dl	B_Gadget		;(A) Eval expn left to right
		dw	Col1,Row1,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadA.ITxt,0,0
		dw	'A'
		dl	0

B_Gadget:	dl	C_Gadget		;(B)
		dw	Col1,Row2,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadB.ITxt,0,0
		dw	'B'
		dl	0

C_Gadget:	dl	D_Gadget		;(C) Exclude config file
		dw	Col1,Row3,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadC.ITxt,0,0
		dw	'C'
		dl	0

D_Gadget:	dl	E_Gadget		;(D) Fwd ref assign ok
		dw	Col1,Row4,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadD.ITxt,0,0
		dw	'D'
		dl	0

E_Gadget:	dl	F_Gadget		;(E) Escape strings
		dw	Col1,Row5,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadE.ITxt,0,0
		dw	'E'
		dl	0

F_Gadget:	dl	G_Gadget		;(F) Flush resident maclibs
		dw	Col1,Row6,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadF.ITxt,0,0
		dw	'F'
		dl	0

G_Gadget:	dl	H_Gadget		;(G) Output debug hunk
		dw	Col1,Row7,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadG.ITxt,0,0
		dw	'G'
		dl	0

H_Gadget:	dl	I_Gadget		;(H)
		dw	Col1,Row8,GadWidth,GadHeight
		dw	GADGHCOMP!GADGDISABLED
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadH.ITxt,0,0
		dw	'H'
		dl	0

I_Gadget:	dl	J_Gadget		;(I) Set str bit 7
		dw	Col1,Row9,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadI.ITxt,0,0
		dw	'I'
		dl	0

J_Gadget:	dl	K_Gadget		;(J)
		dw	Col2,Row1,GadWidth,GadHeight
		dw	GADGHCOMP!GADGDISABLED
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadJ.ITxt,0,0
		dw	'J'
		dl	0

K_Gadget:	dl	L_Gadget		;(K)
		dw	Col2,Row2,GadWidth,GadHeight
		dw	GADGHCOMP!GADGDISABLED
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadK.ITxt,0,0
		dw	'K'
		dl	0

L_Gadget:	dl	M_Gadget		;(L) Add labels to list file
		dw	Col2,Row3,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadL.ITxt,0,0
		dw	'L'
		dl	0

M_Gadget:	dl	N_Gadget		;(M) No comment markers
		dw	Col2,Row4,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadM.ITxt,0,0
		dw	'M'
		dl	0

N_Gadget:	dl	O_Gadget		;(N) Normalize library
		dw	Col2,Row5,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadN.ITxt,0,0
		dw	'N'
		dl	0

O_Gadget:	dl	P_Gadget		;(O) Aseg file output
		dw	Col2,Row6,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadO.ITxt,0,0
		dw	'O'
		dl	0

P_Gadget:	dl	Q_Gadget		;(P) Turn paging on
		dw	Col2,Row7,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadP.ITxt,0,0
		dw	'P'
		dl	0

Q_Gadget:	dl	R_Gadget		;(Q) Quiet reports
		dw	Col2,Row8,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadQ.ITxt,0,0
		dw	'Q'
		dl	0

R_Gadget:	dl	S_Gadget		;(R) Reload custom file
		dw	Col2,Row9,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadR.ITxt,0,0
		dw	'R'
		dl	0

S_Gadget:	dl	T_Gadget		;(S) Add symbol hunk
		dw	Col3,Row1,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadS.ITxt,0,0
		dw	'S'
		dl	0

T_Gadget:	dl	U_Gadget		;(T) Report timing info
		dw	Col3,Row2,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadT.ITxt,0,0
		dw	'T'
		dl	0

U_Gadget:	dl	V_Gadget		;(U)
		dw	Col3,Row3,GadWidth,GadHeight
		dw	GADGHCOMP!GADGDISABLED
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadU.ITxt,0,0
		dw	'U'
		dl	0

V_Gadget:	dl	W_Gadget		;(V) Verbose reports
		dw	Col3,Row4,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadV.ITxt,0,0
		dw	'V'
		dl	0

W_Gadget:	dl	X_Gadget		;(W)
		dw	Col3,Row5,GadWidth,GadHeight
		dw	GADGHCOMP!GADGDISABLED
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadW.ITxt,0,0
		dw	'W'
		dl	0

X_Gadget:	dl	Y_Gadget		;(X) EXE file output
		dw	Col3,Row6,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadX.ITxt,0,0
		dw	'X'
		dl	0

Y_Gadget:	dl	Z_Gadget		;(Y)
		dw	Col3,Row7,GadWidth,GadHeight
		dw	GADGHCOMP!GADGDISABLED
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadY.ITxt,0,0
		dw	'Y'
		dl	0

Z_Gadget:	dl	SourceFileGad		;(Z) real time rexx
		dw	Col3,Row8,GadWidth,GadHeight
		dw	GADGHCOMP
		dw	TOGGLESELECT
		dw	BOOLGADGET
		dl	Border1,0,GadZ.ITxt,0,0
		dw	'Z'
		dl	0

NumFlagGadgets	equ	((*-A_Gadget)/gg_SIZEOF)
	ifne	(NumFlagGadgets*gg_SIZEOF)-(*-A_Gadget)
		FAIL	Bad GadgetStructure !!!
	endc

ExecuteQuitGad:	dl	ExecuteStayGad		;EXECUTE
		dw	Col3,Row13-2,97,GadHeight+1
		dw	GADGHCOMP
		dw	RELVERIFY
		dw	BOOLGADGET
		dl	Border4,0,GadExeQuit.ITxt,0,0
		dw	0
		dl	ExecuteAndQuit

ExecuteStayGad:	dl	0		;EXECUTE
		dw	Col3+101,Row13-2,97,GadHeight+1
		dw	GADGHCOMP
		dw	RELVERIFY
		dw	BOOLGADGET
		dl	Border4,0,GadExeStay.ITxt,0,0
		dw	0
		dl	ExecuteAndStay

GadA.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadA.Text,0

GadB.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadB.Text,0

GadC.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadC.Text,0

GadD.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadD.Text,0

GadE.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadE.Text,0

GadF.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadF.Text,0

GadG.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadG.Text,0

GadH.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadH.Text,0

GadI.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadI.Text,0

GadJ.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadJ.Text,0

GadK.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadK.Text,0

GadL.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadL.Text,0

GadM.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadM.Text,0

GadN.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadN.Text,0

GadO.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadO.Text,0

GadP.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadP.Text,0

GadQ.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadQ.Text,0

GadR.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadR.Text,0

GadS.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadS.Text,0

GadT.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadT.Text,0

GadU.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadU.Text,0

GadV.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadV.Text,0

GadW.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadW.Text,0

GadX.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadX.Text,0

GadY.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadY.Text,0

GadZ.ITxt:	db	1,0,RP_JAM1,0
		dw	2,1
		dl	MyTextAttr,GadZ.Text,0

GadExeStay.ITxt:
		db	1,0,RP_INVERSVID,0		;EXECUTE
		dw	0,1
		dl	0,GadExeStay.Text,0

GadExeQuit.ITxt:
		db	1,0,RP_INVERSVID,0		;EXECUTE
		dw	0,1
		dl	0,GadExeQuit.Text,0

*** StringGadgets

SourceFileGad:	dl	SymbolListGad
		dw	Col1+TxtLen,Row10,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,SourceFile.ITxt,0,SourceFileInfo
		dw	'  '
		dl	ActivateNextGadget

SymbolListGad:	dl	ErrorFileGad
		dw	Col1+TxtLen,Row11,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,SymbolList.ITxt,0,SymbolListInfo
		dw	'-D'
		dl	ActivateNextGadget

ErrorFileGad:	dl	HeaderFileGad
		dw	Col1+TxtLen,Row12,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,ErrorFile.ITxt,0,ErrorFileInfo
		dw	'-E'
		dl	ActivateNextGadget

HeaderFileGad:	dl	IncludeListGad
		dw	Col1+TxtLen,Row13,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,HeaderFile.ITxt,0,HeaderFileInfo
		dw	'-H'
		dl	ActivateNextGadget

IncludeListGad:	dl	ListFileGad
		dw	Col2+TxtLen,Row10,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,IncludeList.ITxt,0,IncludeListInfo
		dw	'-I'
		dl	ActivateNextGadget

ListFileGad:	dl	OutputFileGad
		dw	Col2+TxtLen,Row11,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,ListFile.ITxt,0,ListFileInfo
		dw	'-L'
		dl	ActivateNextGadget

OutputFileGad:	dl	ConfigFileGad
		dw	Col2+TxtLen,Row12,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,OutputFile.ITxt,0,OutputFileInfo
		dw	'-O'
		dl	ActivateNextGadget

ConfigFileGad:	dl	EquateFileGad
		dw	Col2+TxtLen,Row13,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,ConfigFile.ITxt,0,ConfigFileInfo
		dw	'-P'
		dl	ActivateNextGadget

EquateFileGad:	dl	DefineListGad
		dw	Col3+TxtLen,Row10,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,EquateFile.ITxt,0,EquateFileInfo
		dw	'-Q'
		dl	ActivateNextGadget

DefineListGad:	dl	XRefFileGad
		dw	Col3+TxtLen,Row11,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,DefineList.ITxt,0,DefineListInfo
		dw	'-S'
		dl	ActivateNextGadget

XRefFileGad:	dl	FailAtGad
		dw	Col3+TxtLen,Row12,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,XRefFile.ITxt,0,XRefFileInfo
		dw	'-X'
		dl	ActivateNextGadget

FailAtGad:	dl	ExecuteQuitGad
		dw	Col3+TxtLen,Row9,GadWidth-TxtLen,8
		dw	0
		dw	STRINGCENTER!RELVERIFY
		dw	STRGADGET
		dl	Border3,0,FailAt.ITxt,0,FailAtInfo
		dw	'-F'
		dl	ActivateSourceFileGadget

numStringGadgets	equ	((*-SourceFileGad)/(gg_SIZEOF))
	ifne	(numStringGadgets*gg_SIZEOF)-(*-SourceFileGad)
		FAIL	Bad gadget structure !!!
	endc


*** StringInfo Structures

FailAtInfo:	dl	FailAtBuf
		dl	UNDOBUFFER
		dw	0,10,0,0,0,0,0,0
		dl	0,0,0

SourceFileInfo:	dl	SourceFileBuf
		dl	UNDOBUFFER
		dw	0,130,0,0,0,0,0,0
		dl	0,0,0

SymbolListInfo:	dl	SymbolListBuf
		dl	UNDOBUFFER
		dw	0,130,0,0,0,0,0,0
		dl	0,0,0

ErrorFileInfo:	dl	ErrorFileBuf
		dl	UNDOBUFFER
		dw	0,130,0,0,0,0,0,0
		dl	0,0,0

HeaderFileInfo:	dl	HeaderFileBuf
		dl	UNDOBUFFER
		dw	0,130,0,0,0,0,0,0
		dl	0,0,0

IncludeListInfo:
		dl	IncludeListBuf
		dl	UNDOBUFFER
		dw	0,130,0,0,0,0,0,0
		dl	0,0,0

ListFileInfo:	dl	ListFileBuf
		dl	UNDOBUFFER
		dw	0,130,0,0,0,0,0,0
		dl	0,0,0

OutputFileInfo:	dl	OutputFileBuf
		dl	UNDOBUFFER
		dw	0,130,0,0,0,0,0,0
		dl	0,0,0

ConfigFileInfo:	dl	ConfigFileBuf
		dl	UNDOBUFFER
		dw	0,130,0,0,0,0,0,0
		dl	0,0,0

EquateFileInfo:	dl	EquateFileBuf
		dl	UNDOBUFFER
		dw	0,130,0,0,0,0,0,0
		dl	0,0,0

DefineListInfo:	dl	DefineListBuf
		dl	UNDOBUFFER
		dw	0,130,0,0,0,0,0,0
		dl	0,0,0

XRefFileInfo:	dl	XRefFileBuf
		dl	UNDOBUFFER
		dw	0,130,0,0,0,0,0,0
		dl	0,0,0

*** Window IntuiText Structures

FailAt.ITxt:	db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,FailAt.Text,0

SourceFile.ITxt:
		db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,SourceFile.Text,0

SymbolList.ITxt:
		db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,SymbolList.Text,0

ErrorFile.ITxt:	db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,ErrorFile.Text,0

HeaderFile.ITxt:
		db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,HeaderFile.Text,0

IncludeList.ITxt:
		db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,IncludeList.Text,0

ListFile.ITxt:	db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,ListFile.Text,0

OutputFile.ITxt:
		db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,OutputFile.Text,0

ConfigFile.ITxt:
		db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,ConfigFile.Text,0

EquateFile.ITxt:
		db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,EquateFile.Text,0

DefineList.ITxt:
		db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,DefineList.Text,0

XRefFile.ITxt:	db	1,0,RP_JAM1,0
		dw	-TxtLen,1
		dl	MyTextAttr,XRefFile.Text,0

*** About Requester

AboutRequester:	dl	0
		dw	76,45,475,110
		dw	0,0
		dl	OkGadget
		dl	0
		dl	AboutReq1.ITxt
		dw	0
		db	1,0
		dl	0
		dcb.b	32,0
		dl	0
		dl	0
		dcb.b	36,0

OkGadget:	dl	0
		dw	432,92,30,11
		dw	0
		dw	ENDGADGET
		dw	BOOLGADGET!REQGADGET
		dl	Border5
		dl	0
		dl	OkGadget.ITxt
		dl	0,0
		dw	0
		dl	0

AboutReq1.ITxt:	db	2,0,RP_JAM1,0
		dw	8,4
		dl	TopazTextAttr,AboutReq1.Text,AboutReq2.ITxt

AboutReq2.ITxt:
		db	2,0,RP_JAM1,0
		dw	200,14
		dl	TopazTextAttr,AboutReq2.Text,AboutReq3.ITxt

AboutReq3.ITxt:	db	2,0,RP_JAM1,0
		dw	25,30
		dl	TopazTextAttr,AboutReq3.Text,AboutReq4.ITxt

AboutReq4.ITxt:	db	2,0,RP_JAM1,0
		dw	25,39
		dl	TopazTextAttr,AboutReq4.Text,AboutReq5.ITxt

AboutReq5.ITxt:	db	2,0,RP_JAM1,0
		dw	15,60
		dl	TopazTextAttr,AboutReq5.Text,AboutReq6.ITxt

AboutReq6.ITxt:	db	2,0,RP_JAM1,0
		dw	15,70
		dl	TopazTextAttr,AboutReq6.Text,AboutReq7.ITxt

AboutReq7.ITxt:	db	2,0,RP_JAM1,0
		dw	15,80
		dl	TopazTextAttr,AboutReq7.Text,AboutReq8.ITxt

AboutReq8.ITxt:	db	2,0,RP_JAM1,0
		dw	15,90
		dl	TopazTextAttr,AboutReq8.Text,0

OkGadget.ITxt:	db	2,0,RP_JAM1,0
		dw	6,2
		dl	TopazTextAttr,OkGadget.Text,0

*** Border Structures

Border1:	dw	-1,-1
		db	2,0,RP_JAM1,6
		dl	Border1_XY,Border2

Border1_XY:	dw	GadWidth+3,0,GadWidth+3,GadHeight+2,0,GadHeight+2
		dw	1,GadHeight+1,GadWidth+2,GadHeight+1,GadWidth+2,1

Border2:	dw	-2,-2
		db	1,0,RP_JAM1,6
		dl	Border2_XY,0

Border2_XY:	dw	GadWidth+3,0,0,0,0,GadHeight+3
		dw	1,GadHeight+2,1,1,GadWidth+2,1

Border3:	dw	-1,-1
		db	3,0,RP_JAM1,5
		dl	Border3_XY,0

Border3_XY:	dw	0,0,GadWidth-TxtLen+1,0,GadWidth-TxtLen+1,9,0,9,0,0

Border4:	dw	0,0
		db	1,0,RP_JAM1,5
		dl	Border4_XY,0

Border4_XY:	dw	0,0,96,0,96,9,0,9,0,0

Border5:	dw	-1,-1
		db	2,0,RP_JAM1,5
		dl	Border5_XY,0

Border5_XY:	dw	0,0,31,0,31,12,0,12,0,0

ConfigName:	cstr	's:macro68Interface.config'
intuitionLibName:
		cstr	'intuition.library'
supportLibName:	cstr	'digisoftSupport.library'
TEENYname:	cstr	'teeny.font'
TOPAZname	cstr	'topaz.font'

ExecuteString:	db	Macro68Path,' '
ExecuteBuffer:	dcb.b	256,0

SourceFileBuf:	dcb.b	130,0
SymbolListBuf:	dcb.b	130,0
ErrorFileBuf:	dcb.b	130,0
HeaderFileBuf:	dcb.b	130,0
IncludeListBuf:	dcb.b	130,0
ListFileBuf:	dcb.b	130,0
OutputFileBuf:	dcb.b	130,0
ConfigFileBuf:	dcb.b	130,0
EquateFileBuf:	dcb.b	130,0
DefineListBuf:	dcb.b	130,0
XRefFileBuf:	dcb.b	130,0
FailAtBuf:	dcb.b	10,0
UNDOBUFFER:	dcb.b	130,0

GadA.Text:	cstr	'(A) Eval expression left to right'
GadB.Text:	cstr	'(B) Binary file output (ASeg)'
GadC.Text:	cstr	'(C) Exclude config file'
GadD.Text:	cstr	'(D) Forward reference assign OK'
GadE.Text:	cstr	'(E) Process escape strings'
GadF.Text:	cstr	'(F) Flush resident maclibs'
GadG.Text:	cstr	'(G) Output debug hunk'
GadH.Text:	cstr	'(H)'
GadI.Text:	cstr	'(I) Set bit 7 in strings'
GadJ.Text:	cstr	'(J)'
GadK.Text:	cstr	'(K)'
GadL.Text:	cstr	'(L) Add labels to list file'
GadM.Text:	cstr	'(M) No comment markers'
GadN.Text:	cstr	'(N) Normalize library'
GadO.Text:	cstr	'(O) Object file suppress'
GadP.Text:	cstr	'(P) Paging turned on'
GadQ.Text:	cstr	'(Q) Quiet reports'
GadR.Text:	cstr	'(R) Reload custom file'
GadS.Text:	cstr	'(S) Add symbol hunk'
GadT.Text:	cstr	'(T) Report timing info'
GadU.Text:	cstr	'(U)'
GadV.Text:	cstr	'(V) Verbose reports'
GadW.Text:	cstr	'(W)'
GadX.Text:	cstr	'(X) Executable file output'
GadY.Text:	cstr	'(Y)'
GadZ.Text:	cstr	'(Z) Real time (Arexx)'
GadExeQuit.Text:
		cstr	' RUN & QUIT '
GadExeStay.Text:
		cstr	' RUN & STAY '

WindowTitle:	cstr	'Macro68 Control ©1990 Jeff Lavin & Paul Coward'
FailAt.Text:	cstr	'FailAt level:'		;-F
SourceFile.Text:
		cstr	'Source file: '		;-A
SymbolList.Text:
		cstr	'Define sym: '		;-D
ErrorFile.Text:	cstr	'Error file:  '		;-E
HeaderFile.Text:
		cstr	'Header file: '		;-H
IncludeList.Text:
		cstr	'Include list:'		;-I
ListFile.Text:	cstr	'List file:   '		;-L
OutputFile.Text:
		cstr	'Output file: '		;-O
ConfigFile.Text:
		cstr	'Config file: '		;-P
EquateFile.Text:
		cstr	'Equate file: '		;-Q
DefineList.Text:
		cstr	'Define string: '	;-S
XRefFile.Text:	cstr	'C-Ref file:  '		;-X

Project_MenuName:
		cstr	'PROJECT'
Item1.Text:	cstr	'Load configuration'
Item2.Text:	cstr	'Save configuration'
Item3.Text:	cstr	'About'
Item4.Text:	cstr	'Quit'
OkGadget.Text:	cstr	'OK'

		oddok
AboutReq1.Text:	db	'Macro68Interface  Release '
		dl	Release
		db	'Version '
		dl	VerNo
		db	0
		odderror

AboutReq2.Text:
		cstr	'©1990 Jeff Lavin & Paul Coward'

AboutReq3.Text:	cstr	'This interface was written to provide a simple,'
AboutReq4.Text:	cstr	'Intuition based front end for the Macro68 assembler.'
AboutReq5.Text:	cstr	'DigiSoft'
AboutReq6.Text:	cstr	'12 Dinmore St. Moorooka'
AboutReq7.Text:	cstr	'Brisbane, 4105. Queensland, Australia.'
AboutReq8.Text:	cstr	'Phone (07) 277-3255 International (617) 277-3255'

	oddok
Title:	db	CSI,$35,';',$33,$33,'m'		;set graphic rendition
	db	'macro68Interface  '
	db	'Release '
	dl	Release
	db	'Vers '
	dl	VerNo
	db	Lf,' CopyRight ©1990 Jeff Lavin & Paul Coward ',Lf
	db	CSI,$30,';',$33,$31,'m'		;reset graphic rendition
	db	0


digisoftLibLost_AlertMsg:
	dw	169
	db	15
	db		'macro68.library -------- MISSING',0
	db	-1
	dw	43
	db	35
	db		'LEFT = OK',0
	db	-1
	dw	489
	db	35
	db		'RIGHT = RETRY',0,0
	odderror


NoWindow_Msg:	db	Lf,CSI,'5;33m'				;set graphic rendition
		db	'ERROR!!!  Couldn''t open window.',Lf
		db	CSI,'0;31m',Lf,0			;reset graphic rendition

FontError_Msg:	db	Lf,CSI,'5;33m'				;set graphic rendition
		db	'ERROR!!!  Required font not found.',Lf
		db	CSI,'0;31m',Lf,0			;reset graphic rendition



	even
ArgPointers:	dc.l	SymbolListBuf
		dc.l	ErrorFileBuf
		dc.l	HeaderFileBuf
		dc.l	IncludeListBuf
		dc.l	ListFileBuf
		dc.l	OutputFileBuf
		dc.l	EquateFileBuf
		dc.l	DefineListBuf
		dc.l	XRefFileBuf
		dc.l	ConfigFileBuf
		dc.l	FailAtBuf
numWBArgs	equ	(*-ArgPointers)/4

IconTemplate:
	dc.b	'SYMBOLFILE',0,0
	dc.b	0
	dc.b	'ERRORFILE',0,0
	dc.b	0
	dc.b	'HEADERFILE',0,0
	dc.b	0
	dc.b	'INCLUDE',0,0
	dc.b	0
	dc.b	'LISTFILE',0,0
	dc.b	0
	dc.b	'OBJFILE',0,0
	dc.b	0
	dc.b	'EQUFILE',0,0
	dc.b	0
	dc.b	'DEFINES',0,0
	dc.b	0
	dc.b	'SYMLIST',0,0
	dc.b	0
	dc.b	'CREFFILE',0,0
	dc.b	0
	dc.b	'CONFIGFILE',0,0
	dc.b	0
	dc.b	'FAILAT',0,0
	dc.b	0


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

	END


Examples of the use of tool types in icons:

ERRORFILE=ram:assem.bugs
CREFFILE=ram:assem.cref
FAILAT=30
