		*************************************
		*                                   *
		*       Intuition Support v2.0      *
		*   by Torsten Jürgeleit in 05/91   *
		*                                   *
		*         Library stub codes        *
		*                                   *
		*************************************

;---------------------------------------------------------------------------
; Damned library stub codes needed, to save a4 (data segment ptr) +
; a6 (scratch reg for #pragma amicall) and call _geta4(), because Manx v5.0d
; #pragma intfunc don't work, arrgh !!!
;---------------------------------------------------------------------------

;---------------------------------------------------------------------------
; External definitions
;---------------------------------------------------------------------------

	XDEF	_IGetRenderInfo
	XDEF	_IFreeRenderInfo
	XDEF	_IOpenWindow
	XDEF	_IClearRenderWindow

	XDEF	_IDisplayTexts
	XDEF	_IPrintText
	XDEF	_IConvertUnsignedDec
	XDEF	_IConvertSignedDec
	XDEF	_IConvertHex
	XDEF	_IConvertBin

	XDEF	_IDisplayBorders
	XDEF	_IDrawBorder

	XDEF	_ICreateGadgets
	XDEF	_IFreeGadgets
	XDEF	_IDisplayGadgets
	XDEF	_IRefreshGadgets
	XDEF	_ISetGadgetAttributes
	XDEF	_IActivateInputGadget
	XDEF	_IGadgetAddress
	XDEF	_IRemoveGadgets
	XDEF	_IGetMsg
	XDEF	_IReplyMsg

	XDEF	_ICreateMenu
	XDEF	_IAttachMenu
	XDEF	_IMenuItemAddress
	XDEF	_IRemoveMenu
	XDEF	_IFreeMenu

;---------------------------------------------------------------------------
; Support macros
;---------------------------------------------------------------------------

CALL	MACRO
	XREF	\1
	jsr	\1
	ENDM

PUSH	MACRO
	movem.l	\1,-(sp)
	ENDM

PULL	MACRO
	movem.l	(sp)+,\1
	ENDM

;---------------------------------------------------------------------------
; Render functions
;---------------------------------------------------------------------------

_IGetRenderInfo:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_get_render_info
	PULL	a4/a6
	rts

_IFreeRenderInfo:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_free_render_info
	PULL	a4/a6
	rts

_IOpenWindow:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_open_window
	PULL	a4/a6
	rts

_IClearRenderWindow:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_clear_render_window
	PULL	a4/a6
	rts

;---------------------------------------------------------------------------
; Text functions
;---------------------------------------------------------------------------

_IDisplayTexts:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_display_texts
	PULL	a4/a6
	rts

_IPrintText:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_print_text
	PULL	a4/a6
	rts

_IConvertUnsignedDec:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_convert_unsigned_dec
	PULL	a4/a6
	rts

_IConvertSignedDec:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_convert_signed_dec
	PULL	a4/a6
	rts

_IConvertHex:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_convert_hex
	PULL	a4/a6
	rts

_IConvertBin:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_convert_bin
	PULL	a4/a6
	rts

;---------------------------------------------------------------------------
; Border functions
;---------------------------------------------------------------------------

_IDisplayBorders:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_display_borders
	PULL	a4/a6
	rts

_IDrawBorder:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_draw_border
	PULL	a4/a6
	rts

;---------------------------------------------------------------------------
; Gadget functions
;---------------------------------------------------------------------------

_ICreateGadgets:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_create_gadgets
	PULL	a4/a6
	rts

_IFreeGadgets:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_free_gadgets
	PULL	a4/a6
	rts

_IDisplayGadgets:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_display_gadgets
	PULL	a4/a6
	rts

_IRefreshGadgets:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_refresh_gadgets
	PULL	a4/a6
	rts

_ISetGadgetAttributes:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_set_gadget_attributes
	PULL	a4/a6
	rts

_IActivateInputGadget:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_activate_input_gadget
	PULL	a4/a6
	rts

_IGadgetAddress:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_gadget_address
	PULL	a4/a6
	rts

_IRemoveGadgets:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_remove_gadgets
	PULL	a4/a6
	rts

_IGetMsg:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_get_msg
	PULL	a4/a6
	rts

_IReplyMsg:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_reply_msg
	PULL	a4/a6
	rts

;---------------------------------------------------------------------------
; Menu functions
;---------------------------------------------------------------------------

_ICreateMenu:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_create_menu
	PULL	a4/a6
	rts

_IAttachMenu:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_attach_menu
	PULL	a4/a6
	rts

_IMenuItemAddress:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_menu_item_address
	PULL	a4/a6
	rts

_IRemoveMenu:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_remove_menu
	PULL	a4/a6
	rts

_IFreeMenu:
	PUSH	a4/a6
	CALL	_geta4
	CALL	_free_menu
	PULL	a4/a6
	rts

	END
