	XDEF	_OpenScreen24
	XDEF	_CloseScreen24
	XDEF	_DrawRGB
	XDEF	_ReadRGB
	XDEF	_SetControl
	XDEF	_SetRGB
	XDEF	_SetData
	XDEF	_SetCoPRO
	XDEF	_SetLoadAddress
	XDEF	_Update_Palette_CoPRO
	XDEF	_Chng_DataLine
	XDEF	_Chng_NoWrt_DataLine
	XDEF	_Select_Col_CoPRO
	XDEF	_Set_Control_Bit
	XDEF	_Set_Menu_Position
	XDEF	_Set_DMA_Ratio
	XDEF	_Load_Menu_Palette
	XDEF	_Set_Menu_BitMap

_OpenScreen24:
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	;move.l	4(sp),ScreenPointer		;Screen bitplane Structure
	bsr	OpenScreen
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_CloseScreen24:
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	bsr	CloseScreen
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_DrawRGB:
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	bsr	WritePixel	
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_ReadRGB:
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	bsr	ReadPixel
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_SetControl:
	move.l	4(sp),a0			;stucture pointer
	move.l	(a0),a0				;Address of control register
	move.w	4(a0),d0			;Data to write
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	bsr	SetControl	
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_SetRGB:
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.b	(a0),d0				;Palette register to modify
	move.b	1(a0),d1			;Red data
	move.b	2(a0),d2			;Green data
	move.b	3(a0),d3			;blue data
	bsr	SetRGB
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_SetData:
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.b	(a0),ColAddress			;Palette load start address
	move.b	1(a0),PixelMask			;Mask for pixel data
	move.b	2(a0),ControlReg		;Video Control Register
	bsr	SetData
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_SetCoPRO:
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.w	(a0),d0				;CoPRO line to modfiy
	move.b	2(a0),d1			;Data to write for that line
	bsr	SetCoPro
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_SetLoadAddress:
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.l	(a0),Load_Address		;CoPRO line to modfiy
	bsr	SetLoadAddress
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_Update_Palette_CoPRO:
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.b	(a0),d0				;0=Palette, 1=CoPRO
	bsr	Update_Palette_CoPRO
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_Chng_DataLine:
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.l	(a0),a0				;New dataline address
	bsr	Chng_DataLine
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_Chng_NoWrt_DataLine:
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.l	(a0),a0				;New dataline address
	bsr	Chng_NoWrt_DataLine
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_Select_Col_CoPRO:	;Select update to palette or CoPROcessor
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.b	(a0),d0				;status for update
	bsr	Select_Col_CoPro
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_Set_Control_Bit:	;Set a bit in a specified control register
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.l	(a0),a0				;address of control line
	move.b	4(a0),d0			;status of bit to write
	move.b	5(a0),d1			;Bit to modify
	bsr	SetControlBit
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_Set_Menu_Position:	;Set the menu to appear at the vertical position
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.w	(a0),d0				;position of menu
	bsr	Set_Menu_Position
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_Set_DMA_Ratio:		;set the Ratio for screen update and DMA
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.b	(a0),d0				;the DMA Ratio
	bsr	Set_DMA_Ratio
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_Load_Menu_Palette:	;set the Ratio for screen update and DMA
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	move.l	(a0),d0				;the Palette address
	bsr	Load_Menu_Palette
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return

_Set_Menu_BitMap:	;link in bitplanes into Menu Copper list
	move.l	4(sp),a0			;stucture pointer
	movem.l	d2-d7/a2-a6,-(sp)		;save registers
	bsr	Set_Menu_Address
	movem.l	(sp)+,d2-d7/a2-a6		;restore registers
	rts					;return


