
*	Intuition.asm (of PCQ Pascal runtime library)
*	Copyright (c) 1989 Patrick Quaid

*	This simply implements the intuition routines.  Again you don't
*	need to make a new pointer to the library, since we just use the
*	one created by the start up code.

	XREF	_p%IntuitionBase

	section	one

	XDEF	_AddGadget
_AddGadget
	move.l	12(sp),a0
	move.l	8(sp),a1
	move.l	4(sp),d0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOAddGadget(a6)

	XDEF	_AllocRemember
_AllocRemember
	move.l	12(sp),a0
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_p%IntuitionBase,a6
	jmp	_LVOAllocRemember(a6)

	XDEF	_AutoRequest
_AutoRequest
	movem.l	d2/d3/a2/a3,-(sp)
	move.l	48(sp),a0
	move.l	44(sp),a1
	move.l	40(sp),a2
	move.l	36(sp),a3
	move.l	32(sp),d0
	move.l	28(sp),d1
	move.l	24(sp),d2
	move.l	20(sp),d3
	move.l	_p%IntuitionBase,a6
	jsr	_LVOAutoRequest(a6)
	movem.l	(sp)+,d2/d3/a2/a3
	rts

	XDEF	_BeginRefresh
_BeginRefresh
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOBeginRefresh(a6)

	XDEF	_BuildSysRequest
_BuildSysRequest
	movem.l	a2/a3/d2,-(sp)
	move.l	40(sp),a0
	move.l	36(sp),a1
	move.l	32(sp),a2
	move.l	28(sp),a3
	move.l	24(sp),d0
	move.l	20(sp),d1
	move.l	16(sp),d2
	move.l	_p%IntuitionBase,a6
	jsr	_LVOBuildSysRequest(a6)
	movem.l	(sp)+,a2/a3/d2
	rts

	XDEF	_ClearDMRequest
_ClearDMRequest
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOClearDMRequest(a6)

	XDEF	_ClearMenuStrip
_ClearMenuStrip
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOClearMenuStrip(a6)

	XDEF	_ClearPointer
_ClearPointer
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOClearPointer(a6)

	XDEF	_CloseScreen
_CloseScreen
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOCloseScreen(a6)

	XDEF	_CloseWindow
_CloseWindow
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jsr	_LVOCloseWindow(a6)
	rts

	XDEF	_CloseWorkBench
_CloseWorkBench
	move.l	_p%IntuitionBase,a6
	jmp	_LVOCloseWorkBench(a6)

	XDEF	_CurrentTime
_CurrentTime
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_p%IntuitionBase,a6
	jsr	_LVOCurrentTime(a6)
	rts

	XDEF	_DisplayAlert
_DisplayAlert
	move.l	12(sp),d0
	move.l	8(sp),a0
	move.l	4(sp),d1
	move.l	_p%IntuitionBase,a6
	jmp	_LVODisplayAlert(a6)

	XDEF	_DisplayBeep
_DisplayBeep
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jmp	_LVODisplayBeep(a6)

	XDEF	_DoubleClick
_DoubleClick
	movem.l	d2/d3,-(sp)
	move.l	24(sp),d0
	move.l	20(sp),d1
	move.l	16(sp),d2
	move.l	12(sp),d3
	move.l	_p%IntuitionBase,a6
	jsr	_LVODoubleClick(a6)
	movem.l	(sp)+,d2/d3
	tst.b	d0
	sne	d0
	rts

	XDEF	_DrawBorder
_DrawBorder
	move.l	16(sp),a0
	move.l	12(sp),a1
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_p%IntuitionBase,a6
	jmp	_LVODrawBorder(a6)

	XDEF	_DrawImage
_DrawImage
	move.l	16(sp),a0
	move.l	12(sp),a1
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_p%IntuitionBase,a6
	jmp	_LVODrawImage(a6)

	XDEF	_EndRefresh
_EndRefresh
	move.l	6(sp),a0
	move.l	4(sp),d0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOEndRefresh(a6)

	XDEF	_EndRequest
_EndRequest
	move.l	8(sp),a0
	move.l	4(sp),a1
	move.l	_p%IntuitionBase,a6
	jmp	_LVOEndRequest(a6)

	XDEF	_FreeRemember
_FreeRemember
	move.l	6(sp),a0
	move.l	4(sp),d0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOFreeRemember(a6)

	XDEF	_FreeSysRequest
_FreeSysRequest
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOFreeSysRequest(a6)

	XDEF	_GetDefPrefs
_GetDefPrefs
	move.l	8(sp),a0
	move.l	4(sp),d0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOGetDefPrefs(a6)

	XDEF	_GetPrefs
_GetPrefs
	move.l	8(sp),a0
	move.l	4(sp),d0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOGetPrefs(a6)

	XDEF	_InitRequester
_InitRequester
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOInitRequester(a6)

	XDEF	_IntuiTextLength
_IntuiTextLength
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOIntuiTextLength(a6)

	XDEF	_ItemAddress
_ItemAddress
	move.l	8(sp),a0
	move.l	4(sp),d0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOItemAddress(a6)

	XDEF	_MakeScreen
_MakeScreen
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOMakeScreen(a6)

	XDEF	_ModifyIDCMP
_ModifyIDCMP
	move.l	8(sp),a0
	move.l	4(sp),d0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOModifyIDCMP(a6)

	XDEF	_ModifyProp
_ModifyProp
	movem.l	a2/d2/d3/d4,-(sp)
	move.l	48(sp),a0
	move.l	44(sp),a1
	move.l	40(sp),a2
	move.l	36(sp),d0
	move.l	32(sp),d1
	move.l	28(sp),d2
	move.l	24(sp),d3
	move.l	20(sp),d4
	move.l	_p%IntuitionBase,a6
	jsr	_LVOModifyProp(a6)
	movem.l	(sp)+,a2/d2/d3/d4
	rts

	XDEF	_MoveScreen
_MoveScreen
	move.l	12(sp),a0
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_p%IntuitionBase,a6
	jsr	_LVOMoveScreen(a6)
	rts

	XDEF	_MoveWindow
_MoveWindow
	move.l	12(sp),a0
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_p%IntuitionBase,a6
	jsr	_LVOMoveWindow(a6)
	rts

	XDEF	_OffGadget
_OffGadget
	move.l	12(sp),a0
	move.l	8(sp),a1
	move.l	4(sp),a2
	move.l	_p%IntuitionBase,a6
	jmp	_LVOOffGadget(a6)

	XDEF	_OffMenu
_OffMenu
	move.l	8(sp),a0
	move.l	4(sp),d0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOOffMenu(a6)

	XDEF	_OnGadget
_OnGadget
	move.l	a2,-(sp)
	move.l	16(sp),a0
	move.l	12(sp),a1
	move.l	8(sp),a2
	move.l	_p%IntuitionBase,a6
	jsr	_LVOOnGadget(a6)
	move.l	(sp)+,a2
	rts

	XDEF	_OnMenu
_OnMenu
	move.l	8(sp),a0
	move.l	4(sp),d0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOOnMenu(a6)

	XDEF	_OpenScreen
_OpenScreen
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jsr	_LVOOpenScreen(a6)
	rts

	XDEF	_OpenWindow
_OpenWindow
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jsr	_LVOOpenWindow(a6)
	rts

	XDEF	_OpenWorkBench
_OpenWorkBench
	move.l	_p%IntuitionBase,a6
	jmp	_LVOOpenWorkBench(a6)

	XDEF	_PrintIText
_PrintIText
	move.l	16(sp),a0
	move.l	12(sp),a1
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_p%IntuitionBase,a6
	jmp	_LVOPrintIText(a6)

	XDEF	_RefreshGadgets
_RefreshGadgets
	move.l	a2,-(sp)
	move.l	16(sp),a0
	move.l	12(sp),a1
	move.l	8(sp),a2
	move.l	_p%IntuitionBase,a6
	jsr	_LVORefreshGadgets(a6)
	move.l	(sp)+,a2
	rts

	XDEF	_RemakeDisplay
_RemakeDisplay
	move.l	_p%IntuitionBase,a6
	jmp	_LVORemakeDisplay(a6)

	XDEF	_RemoveGadget
_RemoveGadget
	move.l	8(sp),a0
	move.l	4(sp),a1
	move.l	_p%IntuitionBase,a6
	jmp	_LVORemoveGadget(a6)

	XDEF	_ReportMouse
_ReportMouse
	move.l	6(sp),a0
	move.l	4(sp),d0
	move.l	_p%IntuitionBase,a6
	jmp	_LVOReportMouse(a6)

	XDEF	_Request
_Request
	move.l	8(sp),a0
	move.l	4(sp),a1
	move.l	_p%IntuitionBase,a6
	jmp	_LVORequest(a6)

	XDEF	_RethinkDisplay
_RethinkDisplay
	move.l	_p%IntuitionBase,a6
	jmp	_LVORethinkDisplay(a6)

	XDEF	_ScreenToBack
_ScreenToBack
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jsr	_LVOScreenToBack(a6)
	rts

	XDEF	_ScreenToFront
_ScreenToFront
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jsr	_LVOScreenToFront(a6)
	rts

	XDEF	_SetDMRequest
_SetDMRequest
	move.l	8(sp),a0
	move.l	4(sp),a1
	move.l	_p%IntuitionBase,a6
	jmp	_LVOSetDMRequest(a6)

	XDEF	_SetMenuStrip
_SetMenuStrip
	move.l	8(sp),a0
	move.l	4(sp),a1
	move.l	_p%IntuitionBase,a6
	jmp	_LVOSetMenuStrip(a6)

	XDEF	_SetPointer
_SetPointer
	movem.l	d2/d3,-(sp)
	move.l	32(sp),a0
	move.l	28(sp),a1
	move.l	24(sp),d0
	move.l	20(sp),d1
	move.l	16(sp),d2
	move.l	12(sp),d3
	move.l	_p%IntuitionBase,a6
	jsr	_LVOSetPointer(a6)
	movem.l	(sp)+,d2/d3
	rts

	XDEF	_SetWindowTitles
_SetWindowTitles
	move.l	a2,-(sp)
	move.l	16(sp),a0
	move.l	12(sp),a1
	move.l	8(sp),a2
	move.l	_p%IntuitionBase,a6
	jsr	_LVOSetWindowTitles(a6)
	move.l	(sp)+,a2
	rts

	XDEF	_ShowTitle
_ShowTitle
	move.l	6(sp),a0
	move.w	4(sp),d0
	and.l	#$FF,d0
	move.l	_p%IntuitionBase,a6
	jsr	_LVOShowTitle(a6)
	rts

	XDEF	_SizeWindow
_SizeWindow
	move.l	12(sp),a0
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_p%IntuitionBase,a6
	jsr	_LVOSizeWindow(a6)
	rts

	XDEF	_ViewAddress
_ViewAddress
	move.l	_p%IntuitionBase,a6
	jmp	_LVOViewAddress(a6)

	XDEF	_ViewPortAddress
_ViewPortAddress
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jsr	_LVOViewPortAddress(a6)
	rts

	XDEF	_WBenchToBack
_WBenchToBack
	move.l	_p%IntuitionBase,a6
	jsr	_LVOWBenchToBack(a6)
	rts

	XDEF	_WBenchToFront
_WBenchToFront
	move.l	_p%IntuitionBase,a6
	jsr	_LVOWBenchToFront(a6)
	rts

	XDEF	_WindowLimits
_WindowLimits
	movem.l	d2/d3,-(sp)
	move.l	28(sp),a0
	move.l	24(sp),d0
	move.l	20(sp),d1
	move.l	16(sp),d2
	move.l	12(sp),d3
	move.l	_p%IntuitionBase,a6
	jsr	_LVOWindowLimits(a6)
	movem.l	(sp)+,d2/d3
	rts

	XDEF	_WindowToBack
_WindowToBack
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jsr	_LVOWindowToBack(a6)
	rts

	XDEF	_WindowToFront
_WindowToFront
	move.l	4(sp),a0
	move.l	_p%IntuitionBase,a6
	jsr	_LVOWindowToFront(a6)
	rts


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

	end
