
; Intuition-Interface

	INCLUDE	"lvo/intuition.i"

	XREF	_IntuitionBase





CREATE MACRO Name,Registermaske,Registeranzahl,Satz1,Anzahl1,Satz2,Anzahl2...

	IFD	\1
	XDEF	_\1

_\1
	IFEQ	 \3-1
	move.l	\2,-(SP)
	ELSE
	movem.l	\2,-(SP)
	ENDC

TIEFE	SET	4+4*\3
	IFNC	 '\4',''
	SATZ	\4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i,\j
	ENDC

	move.l	_IntuitionBase,a6
	jsr		_LVO\1(a6)
	IFEQ	 \3-1
	move.l	(SP)+,\2
	ELSE
	movem.l	(SP)+,\2
	ENDC
	rts

	ENDC

	ENDM





SATZ	MACRO	Satz1,Anzahl1,Satz2,Anzahl2...
	IFEQ	 \2-1
	move.l	TIEFE(SP),\1
	ELSE
	movem.l	TIEFE(SP),\1
	ENDC
TIEFE	SET	TIEFE+4*\2
	IFNC	 '\3',''
	SATZ	\3,\4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i
	ENDC
	ENDM





; OpenIntuition()()
	CREATE	OpenIntuition,a6,1

; Intuition(ievent)(A0)
	CREATE	Intuition,a6,1,a0,1

; AddGadget(AddPtr,Gadget,Position)(A0/A1,D0)
	CREATE	AddGadget,a6,1,a0-a1,2,d0,1

; ClearDMRequest(Window)(A0)
	CREATE	ClearDMRequest,a6,1,a0,1

; ClearMenuStrip(Window)(A0)
	CREATE	ClearMenuStrip,a6,1,a0,1

; ClearPointer(Window)(A0)
	CREATE	ClearPointer,a6,1,a0,1

; CloseScreen(Screen)(A0)
	CREATE	CloseScreen,a6,1,a0,1

; CloseWindow(Window)(A0)
	CREATE	CloseWindow,a6,1,a0,1

; CloseWorkBench()()
	CREATE	CloseWorkBench,a6,1

; CurrentTime(Seconds,Micros)(A0/A1)
	CREATE	CurrentTime,a6,1,a0-a1,2

; DisplayAlert(AlertNumber,String,Height)(D0/A0,D1)
	CREATE	DisplayAlert,a6,1,d0/a0,2,d1,1

; DisplayBeep(Screen)(A0)
	CREATE	DisplayBeep,a6,1,a0,1

; DoubleClick(sseconds,smicros,cseconds,cmicros)(D0/D1/D2/D3)
	CREATE	DoubleClick,d2-d3/a6,3,d0-d3,4

; DrawBorder(RPort,Border,LeftOffset,TopOffset)(A0/A1,D0/D1)
	CREATE	DrawBorder,a6,1,a0-a1,2,d0-d1,2

; DrawImage(RPort,Image,LeftOffset,TopOffset)(A0/A1,D0/D1)
	CREATE	DrawImage,a6,1,a0-a1,2,d0-d1,2

; EndRequest(requester,window)(A0/A1)
	CREATE	EndRequest,a6,1,a0-a1,2

; GetDefPrefs(preferences,size)(A0,D0)
	CREATE	GetDefPrefs,a6,1,a0,1,d0,1

; GetPrefs(preferences,size)(A0,D0)
	CREATE	GetPrefs,a6,1,a0,1,d0,1

; InitRequester(req)(A0)
	CREATE	InitRequester,a6,1,a0,1

; ItemAddress(MenuStrip,MenuNumber)(A0,D0)
	CREATE	ItemAddress,a6,1,a0,1,d0,1

; ModifyIDCMP(Window,Flags)(A0,D0)
	CREATE	ModifyIDCMP,a6,1,a0,1,d0,1

; ModifyProp(Gadget,Ptr,Req,Flags,HPos,VPos,HBody,VBody)(A0/A1/A2,D0/D1/D2/D3/D4)
	CREATE	ModifyProp,d2-d4/a2/a6,5,a0-a2,3,d0-d4,5

; MoveScreen(Screen,dx,dy)(A0,D0/D1)
	CREATE	MoveScreen,a6,1,a0,1,d0-d1,2

; MoveWindow(window,dx,dy)(A0,D0/D1)
	CREATE	MoveWindow,a6,1,a0,1,d0-d1,2

; OffGadget(Gadget,Ptr,Req)(A0/A1/A2)
	CREATE	OffGadget,a2/a6,2,a0-a2,3

; OffMenu(Window,MenuNumber)(A0,D0)
	CREATE	OffMenu,a6,1,a0,1,d0,1

; OnGadget(Gadget,Ptr,Req)(A0/A1/A2)
	CREATE	OnGadget,a2/a6,2,a0-a2,3

; OnMenu(Window,MenuNumber)(A0,D0)
	CREATE	OnMenu,a6,1,a0,1,d0,1

; OpenScreen(OSargs)(A0)
	CREATE	OpenScreen,a6,1,a0,1

; OpenWindow(OWargs)(A0)
	CREATE	OpenWindow,a6,1,a0,1

; OpenWorkBench()()
	CREATE	OpenWorkBench,a6,1

; PrintIText(rp,itext,left,top)(A0/A1,D0/D1)
	CREATE	PrintIText,a6,1,a0-a1,2,d0-d1,2

; RefreshGadgets(Gadgets,Ptr,Req)(A0/A1/A2)
	CREATE	RefreshGadgets,a2/a6,2,a0-a2,3

; RemoveGadget(RemPtr,Gadget)(A0/A1)
	CREATE	RemoveGadget,a6,1,a0-a1,2

; ReportMouse(Boolean,Window)(D0/A0)
	CREATE	ReportMouse,a6,1,d0/a0,2

; Request(Requester,Window)(A0/A1)
	CREATE	Request,a6,1,a0-a1,2

; ScreenToBack(Screen)(A0)
	CREATE	ScreenToBack,a6,1,a0,1

; ScreenToFront(Screen)(A0)
	CREATE	ScreenToFront,a6,1,a0,1

; SetDMRequest(Window,req)(A0/A1)
	CREATE	SetDMRequest,a6,1,a0-a1,2

; SetMenuStrip(Window,Menu)(A0/A1)
	CREATE	SetMenuStrip,a6,1,a0-a1,2

; SetPointer(Window,Pointer,Height,Width,Xoffset,Yoffset)(A0/A1,D0/D1/D2/D3)
	CREATE	SetPointer,d2-d3/a6,3,a0-a1,2,d0-d3,4

; SetWindowTitles(window,windowtitle,screentitle)(A0/A1/A2)
	CREATE	SetWindowTitles,a2/a6,2,a0-a2,3

; ShowTitle(Screen,ShowIt)(A0,D0)
	CREATE	ShowTitle,a6,1,a0,1,d0,1

; SizeWindow(window,dx,dy)(A0,D0/D1)
	CREATE	SizeWindow,a6,1,a0,1,d0-d1,2

; ViewAddress()()
	CREATE	ViewAddress,a6,1

; ViewPortAddress(window)(A0)
	CREATE	ViewPortAddress,a6,1,a0,1

; WindowToBack(window)(A0)
	CREATE	WindowToBack,a6,1,a0,1

; WindowToFront(window)(A0)
	CREATE	WindowToFront,a6,1,a0,1

; WindowLimits(window,minwidth,minheight,maxwidth,maxheight)(A0,D0/D1/D2/D3)
	CREATE	WindowLimits,d2-d3/a6,3,a0,1,d0-d3,4

; SetPrefs(preferences,size,flag)(A0,D0/D1)
	CREATE	SetPrefs,a6,1,a0,1,d0-d1,2

; IntuiTextLength(itext)(A0)
	CREATE	IntuiTextLength,a6,1,a0,1

; WBenchToBack()()
	CREATE	WBenchToBack,a6,1

; WBenchToFront()()
	CREATE	WBenchToFront,a6,1

; AutoRequest(Window,Body,PText,NText,PFlag,NFlag,W,H)(A0,A1,A2,A3,D0,D1,D2,D3)
	CREATE	AutoRequest,d2-d3/a2-a3/a6,5,a0-a3,4,d0-d3,4

; BeginRefresh(Window)(A0)
	CREATE	BeginRefresh,a6,1,a0,1

; BuildSysRequest(Window,Body,PosText,NegText,Flags,W,H)(A0,A1,A2,A3,D0,D1,D2)
	CREATE	BuildSysRequest,d2/a2-a3/a6,4,a0-a3,4,d0-d2,3

; EndRefresh(Window,Complete)(A0,D0)
	CREATE	EndRefresh,a6,1,a0,1,d0,1

; FreeSysRequest(Window)(A0)
	CREATE	FreeSysRequest,a6,1,a0,1

; MakeScreen(Screen)(A0)
	CREATE	MakeScreen,a6,1,a0,1

; RemakeDisplay()()
	CREATE	RemakeDisplay,a6,1

; RethinkDisplay()()
	CREATE	RethinkDisplay,a6,1

; AllocRemember(RememberKey,Size,Flags)(A0,D0,D1)
	CREATE	AllocRemember,a6,1,a0,1,d0-d1,2

; AlohaWorkbench(wbport)(A0)
	CREATE	AlohaWorkbench,a6,1,a0,1

; FreeRemember(RememberKey,ReallyForget)(A0,D0)
	CREATE	FreeRemember,a6,1,a0,1,d0,1

; LockIBase(dontknow)(D0)
	CREATE	LockIBase,a6,1,d0,1

; UnlockIBase(IBLock)(A0)
	CREATE	UnlockIBase,a6,1,a0,1

; GetScreenData(buffer,size,type,screen)(A0,D0,D1,A1)
	CREATE	GetScreenData,a6,1,a0,1,d0-d1/a1,3

; RefreshGList(Gadgets,Ptr,Req,NumGad)(A0/A1/A2,D0)
	CREATE	RefreshGList,a2/a6,2,a0-a2,3,d0,1

; AddGList(AddPtr,Gadget,Position,NumGad,Requester)(A0/A1,D0/D1/A2)
	CREATE	AddGList,a2/a6,2,a0-a1,2,d0-d1/a2,3

; RemoveGList(RemPtr,Gadget,NumGad)(A0/A1,D0)
	CREATE	RemoveGList,a6,1,a0-a1,2,d0,1

; ActivateWindow(Window)(A0)
	CREATE	ActivateWindow,a6,1,a0,1

; RefreshWindowFrame(Window)(A0)
	CREATE	RefreshWindowFrame,a6,1,a0,1

; ActivateGadget(Gadgets,Window,Req)(A0/A1/A2)
	CREATE	ActivateGadget,a2/a6,2,a0-a2,3

; NewModifyProp(Gadget,Ptr,Req,Flags,HPos,VPos,HBody,VBody,NumGad)(A0/A1/A2,D0/D1/D2/D3/D4/D5)
	CREATE	NewModifyProp,d2-d5/a2/a6,6,a0-a2,3,d0-d5,6





; Offsets

	IFD	OFFSETS

	XDEF	_LVOOpenIntuition
	XDEF	_LVOIntuition
	XDEF	_LVOAddGadget
	XDEF	_LVOClearDMRequest
	XDEF	_LVOClearMenuStrip
	XDEF	_LVOClearPointer
	XDEF	_LVOCloseScreen
	XDEF	_LVOCloseWindow
	XDEF	_LVOCloseWorkBench
	XDEF	_LVOCurrentTime
	XDEF	_LVODisplayAlert
	XDEF	_LVODisplayBeep
	XDEF	_LVODoubleClick
	XDEF	_LVODrawBorder
	XDEF	_LVODrawImage
	XDEF	_LVOEndRequest
	XDEF	_LVOGetDefPrefs
	XDEF	_LVOGetPrefs
	XDEF	_LVOInitRequester
	XDEF	_LVOItemAddress
	XDEF	_LVOModifyIDCMP
	XDEF	_LVOModifyProp
	XDEF	_LVOMoveScreen
	XDEF	_LVOMoveWindow
	XDEF	_LVOOffGadget
	XDEF	_LVOOffMenu
	XDEF	_LVOOnGadget
	XDEF	_LVOOnMenu
	XDEF	_LVOOpenScreen
	XDEF	_LVOOpenWindow
	XDEF	_LVOOpenWorkBench
	XDEF	_LVOPrintIText
	XDEF	_LVORefreshGadgets
	XDEF	_LVORemoveGadget
	XDEF	_LVOReportMouse
	XDEF	_LVORequest
	XDEF	_LVOScreenToBack
	XDEF	_LVOScreenToFront
	XDEF	_LVOSetDMRequest
	XDEF	_LVOSetMenuStrip
	XDEF	_LVOSetPointer
	XDEF	_LVOSetWindowTitles
	XDEF	_LVOShowTitle
	XDEF	_LVOSizeWindow
	XDEF	_LVOViewAddress
	XDEF	_LVOViewPortAddress
	XDEF	_LVOWindowToBack
	XDEF	_LVOWindowToFront
	XDEF	_LVOWindowLimits
	XDEF	_LVOSetPrefs
	XDEF	_LVOIntuiTextLength
	XDEF	_LVOWBenchToBack
	XDEF	_LVOWBenchToFront
	XDEF	_LVOAutoRequest
	XDEF	_LVOBeginRefresh
	XDEF	_LVOBuildSysRequest
	XDEF	_LVOEndRefresh
	XDEF	_LVOFreeSysRequest
	XDEF	_LVOMakeScreen
	XDEF	_LVORemakeDisplay
	XDEF	_LVORethinkDisplay
	XDEF	_LVOAllocRemember
	XDEF	_LVOAlohaWorkbench
	XDEF	_LVOFreeRemember
	XDEF	_LVOLockIBase
	XDEF	_LVOUnlockIBase
	XDEF	_LVOGetScreenData
	XDEF	_LVORefreshGList
	XDEF	_LVOAddGList
	XDEF	_LVORemoveGList
	XDEF	_LVOActivateWindow
	XDEF	_LVORefreshWindowFrame
	XDEF	_LVOActivateGadget
	XDEF	_LVONewModifyProp

	ENDC





	END

